Проблема с транслитерацией 'φ' в 'f' в SQL Server 2005 - PullRequest
2 голосов
/ 07 января 2011

На нашем компьютере с SQL Server 2005 я обнаружил ошибку, из-за которой все символы 'f' отбрасывались при подготовке данных для последующей системы, которая имеет некоторые ограничения символов.

Я обнаружил, что в UDF было выражение, которое пыталось заменить символы «φ» на «».Проблема в том, что, по крайней мере, в нашей установке SQL Server, «φ» и «f» - это одно и то же.

Может кто-нибудь сказать мне, что было бы лучшим способом провести различие между «φ» и «е '?

пример:

select case when 'φ' = 'f' then 'equal' else 'not equal' end

Для меня это возвращает «равно»

1 Ответ

6 голосов
/ 07 января 2011

Используйте N'φ' в строковом литерале, чтобы он не приводился к сопоставлению по умолчанию.

Для меня (под SQL_Latin1_General_CP1_CS_AS)

select case when 'φ' = 'f' then 'equal' else 'not equal' end /*equal*/

select case when N'φ' = 'f' then 'equal' else 'not equal' end /*not equal*/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...