我的数据库上的默认语言设置为SQL_Latin1_General_CP1_CI_AS
.
我希望返回name
字段包含其他语言字符的结果,例如阿拉伯语或中文):
阿尔布拉 ابومحمد
我在 WHERE 子句中尝试了以下代码,但结果集始终为空:
a.Name NOT LIKE '%[^A-z]%'
PATINDEX('%[A-Z,0-9]%',a.Name) > 0
ASCII(a.Name) NOT BETWEEN 65/* A */ and 90/* Z */ AND ASCII(a.Name) NOT BETWEEN 97 /* a */ AND 122 /* z */
a.Name COLLATE SQL_Latin1_General_CP1_CI_AS NOT LIKE '%[^0-9a-zA-Z]%'
更新
我使用的是 SQL Server 2012(不是 SQL Server 2005。)我尝试了接受答案中的代码“如何在 sql server 2005 中选择包含非英语字符的行(它应该只过滤非英语字符,而不是特殊字符) characters) " 但它不适用于我的数据库。