SQL LIKE运算符不适用于亚洲语言(SQL Server 2008)

Far*_*hid 4 sql-server unicode select nvarchar collation

亲爱的朋友们,我面临着一个从未想过的问题。我的问题似乎太简单了,但是我找不到解决方案。我有一个类型为NVarchar的sql server数据库列,并用标准的波斯字符填充。当我尝试在其上运行包含LIKE运算符的非常简单的查询时,尽管我知道表中存在查询词,但结果集为空。这是一个非常简单的示例查询,它不能起到核心作用:SELECT * FROM T_Contacts WHERE C_ContactName LIKE'%?%'

?是波斯字符,ContactName列包含多个包含该字符的条目。

请告诉我如何重写表达式或应应用哪些更改。请注意,我数据库的排序规则是SQL_Latin1_General_CP1_CI_AS。

非常感谢你

mar*_*c_s 5

另外,如果这些值存储为NVARCHAR(希望如此!),则应始终N'..'对任何字符串文字使用前缀,以确保不会将任何不必要的转换都返回到非Unicode VARCHAR

因此,您应该在搜索:

SELECT * FROM T_Contacts 
WHERE C_ContactName COLLATE Persian_100_CI_AS LIKE N'%?%'
Run Code Online (Sandbox Code Playgroud)