Подтвердить что ты не робот

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

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

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

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

4b9b3361

Ответ 1

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

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

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

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

Ответ 2

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

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

CI означает "нечувствительный к регистру" и AI для "Accent Insensitive".

Ответ 3

если "A" COLLATE SQL_Latin1_General_CP1_CS_AS = 'a' COLLATE SQL_Latin1_General_CP1_CS_AS SELECT N'Yes ' ELSE SELECT N'No '

Ответ 4

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

Здесь AI для Accent Insensitive и AS для Accent Sensitive т.е. Café и Cafe совпадают, если Accent Insensitive.

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

  • latin1 заставляет сервер обрабатывать строки с использованием charset latin 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