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

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

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

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

62
задан gbn 20 March 2010 в 12:25
поделиться

2 ответа

Coerce to a accent insensitive collation

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

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

SELECT *
FROM Venue
WHERE
   Name COLLATE Latin1_general_CI_AI Like '%cafe%' COLLATE Latin1_general_CI_AI
95
ответ дан 24 November 2019 в 16:39
поделиться

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

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

CI означает «нечувствительность к регистру», а AI - «нечувствительность к акценту».

47
ответ дан 24 November 2019 в 16:39
поделиться
Другие вопросы по тегам:

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