Привет Я пытаюсь найти все строки в моей базе данных (SQL Server), которые имеют в своем тексте символ é, выполнив следующие запросы.Как сравнить символы Unicode на SQL-сервере?
SELECT COUNT(*) FROM t_question WHERE patindex(N'%[\xE9]%',question) > 0;
SELECT COUNT(*) FROM t_question WHERE patindex(N'%[\u00E9]%',question) > 0;
Но я обнаружил две проблемы: (а) Оба из них возвращаются различное количество строк и (б) они возвращаются строки, которые не имеют заданный символ.
Является ли способ, которым я строю регулярное выражение и правильно оцениваю Юникод?
РЕДАКТИРОВАТЬ:
В столбце вопрос хранится с использованием типа данных nvarchar
. Следующий запрос дает правильный результат.
SELECT COUNT(*) FROM t_question WHERE question LIKE N'%é%';
Таким образом, первый из них соответствие с \, 0,0, E или 9? Есть ли способ указать Юникод в запросе? – rkg 2010-11-30 23:08:52