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


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

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

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

4 55

4 ответа:

принуждать к акценту нечувствительным сортировка

вы также должны убедиться, что обе стороны имеют одинаковые параметры сортировки, чтобы избежать ошибок или дальнейших принудительных действий, если вы хотите сравнить с табличной переменной или временной таблицей varchar column

и потому, что постоянное значение будет иметь сопоставление обновление базы данных: только для локальных переменных, а не для константы нет, даже тогда

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

применяя определенный акцент нечувствительный сортировка на ваш выбор:

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

ИЦ означает "без учета регистра" и AI для "акцента бесчувственным".

акцент чувствительный и акцент нечувствительный поиск может быть Дон с помощью Latin1_general_CI_AI

здесь AI для акцента нечувствительный и AS для чувствительной акцент то есть,кафе и кафе то же самое, если акцент нечувствителен.

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

  • latin1 заставляет сервер обрабатывать строки с помощью кодировки latin 1, в основном формат ascii.

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

  • 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

Если " а " разбор SQL_Latin1_General_CP1_CS_AS= 'а' сличить SQL_Latin1_General_CP1_CS_AS Выберите N как' ЕЩЕ Выберите N строительно'