2009-08-12 7 views
0

У меня есть некоторый контент в нашей базе данных (для нашего языка) 'странные' символы.Строка сравнима с «странными символами» в SqlServer

Например:

Å 

При использовании like заявления в Sql Server с письмом A, это не возвращает результат, потому что Å не является A.

Есть ли способ в SqlServer для лечения Å как Eé как «e» и т.д.)?

ответ

4

Вы имели в виду "Å as A" или "Å as E"?

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

SELECT 1 WHERE 'Å' = 'A' --No 
SELECT 1 WHERE 'Å' COLLATE LATIN1_General_CI_AI = 'A' --Yes 

SELECT 1 WHERE 'é' = 'e' --No 
SELECT 1 WHERE 'é' COLLATE LATIN1_General_CI_AI = 'e' --Yes 
+0

Спасибо, что работает. Есть ли у вас какие-либо идеи, возможно ли это в Linq для объектов? – Michel

+0

Добро пожаловать. Извините, я этого не делаю. – gbn

+0

тоже не узнал, создал SP с вашим кодом. Прекрасно работает. – Michel

2

Вы можете включить пункт в запросе COLLATE указать акцент нечувствительные сверку:

SELECT * 
FROM your_table 
WHERE your_column LIKE 'A%' COLLATE Latin1_General_CI_AI 

Вы необходимо использовать соответствующую сортировку для вашего языка. Встроенная функция fn_helpcollations предоставит вам список всех поддерживаемых сопоставлений:

SELECT * 
FROM fn_helpcollations() 
Смежные вопросы