T-SQL选择检查非英语(Latin1)字符的列

时间:2015-12-04 15:43:30

标签: tsql select ascii collate patindex

我数据库的默认语言设置为SQL_Latin1_General_CP1_CI_AS

我希望返回name字段包含其他语言字符(如阿拉伯语或中文)的结果:

  

Albraاابومحمد

我在WHERE子句中尝试了以下代码,但结果集始终为空:

  1. a.Name NOT LIKE '%[^A-z]%'
  2. PATINDEX('%[A-Z,0-9]%',a.Name) > 0

  3. ASCII(a.Name) NOT BETWEEN 65/* A */ and 90/* Z */ AND ASCII(a.Name) NOT BETWEEN 97 /* a */ AND 122 /* z */

  4. a.Name COLLATE SQL_Latin1_General_CP1_CI_AS NOT LIKE '%[^0-9a-zA-Z]%'

  5. 更新

    我正在使用SQL Server 2012(不是SQL Server 2005.)我在“how to select rows that contains non-english characters in sql server 2005(it should filter only non-english chars, not special characters)”的已接受答案中尝试了该代码,但它在我的数据库中不起作用。

0 个答案:

没有答案