Как я выполняю, не чувствительное к диакритическим знакам соответствуют (e è, é, ê и ë) в SQL Server?

Я надеюсь сравнивать два varchars в SQL, можно было бы быть чем-то как Cafe и другой Café есть ли путь в SQL, который позволит двум значениям быть сравненными. Например:

SELECT *
FROM Venue
WHERE Name Like '%cafe%'

Таким образом, если существует место проведения с именем Big Bobs Café Extraordinaire это было бы включено в набор результатов?

62
задан 20 March 2010 в 15:25

2 ответа

Чувствительный к диакритическим знакам и Не чувствительный к диакритическим знакам поиск может быть Доном при помощи Latin1_general_CI_AI

Здесь AI, для Не чувствительного к диакритическим знакам и AS для Чувствительного к диакритическим знакам т.е., CafГ© и , Кафе является тем же, если Не чувствительный к диакритическим знакам.

В ниже запроса Latin1_general_CI_AI может быть, разламывают на следующие части.

  • latin1 делает строки обработки сервера с помощью латыни набора символов 1, в основном ASCII

  • , CI указывает нечувствительный к регистру, таким образом, "ABC" равняется "abc".

  • AI указывает не чувствительный к диакритическим знакам, таким образом, 'Гј' равняется 'u'.

Ваш запрос должен быть следующие:

SELECT * FROM Venue WHERE Name COLLATE Latin1_general_CI_AI Like '%cafe%' COLLATE Latin1_general_CI_AI

Ожидаемый Результат следующие:

 Id  name
 1  Café
 2  Cafe
5
ответ дан 31 October 2019 в 13:34

если СОПОСТАВЛЕНИЕ SQL_Latin1_General_CP1_CS_AS = СОПОСТАВЛЕНИЕ ВЫБОРА SQL_Latin1_General_CP1_CS_AS N'Yes ЕЩЕ ВЫБИРАЕТ N'No'

1
ответ дан 31 October 2019 в 13:34

Другие вопросы по тегам:

Похожие вопросы: