T-SQL Unicode определение слова - PullRequest
2 голосов
/ 25 июня 2009

Я новичок в Unicode в Microsoft SQL Server 2005/2008. Я преобразовал свою БД в использование NVarChar () вместо VarChar (). К своему удивлению я обнаружил, что сортировка отличается от сортировки VarChar (). Я нашел эту другую ссылку здесь на StackOverflow, для Сортировка SQL и дефисы , которые объясняли, что сортировка в Юникоде выполняется на основе «слова». После дополнительных исследований я обнаружил сайт Консорциума Unicode (www.unicode.org), в частности сайт сегментации текста Unicode (www.unicode.org/reports/tr29), который обсуждает это, и он упоминает дефис как особый случай. , (К сожалению, как новый пользователь, я не мог публиковать гиперссылки на них).

Но я пытаюсь определить, какие именно правила применяются для разных сопоставлений, в частности для сопоставлений английского языка в США. Какие еще есть особые случаи? Например, дефис - единственный игнорируемый символ? Или как насчет других знаков препинания, таких как апострофы?

Любые ссылки или указатели будут с благодарностью.

1 Ответ

1 голос
/ 25 июня 2009

Не используйте сортировку SQL; использовать Windows один. Это упоминается в статье базы знаний.

Из " Стили сортировки сортировки Windows ":

Для сопоставлений Windows, nchar, Типы данных nvarchar и ntext Unicode имеют то же сортировочное поведение, что и char, varchar и текст не в Юникоде типы данных.

Однако вы должны также подумать, почему у вас есть юникод. Помимо проблем с сортировкой, он медленнее: производительность varchar против nvarchar и даже MS согласен

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...