检查字符串unicode"非西方" SQL Server

时间:2017-01-10 11:24:10

标签: sql sql-server unicode amazon-redshift

我正在尝试计算有非西方"的名字。我桌子上的人物。

我使用以下内容但不起作用:

select count(id) 
from table 
where name != cast(name as varchar(1000))

还有其他解决方案吗?

2 个答案:

答案 0 :(得分:1)

您是否尝试过使用带有排除的正则表达式(^)。 (感谢Tyron和Damien指出我的错误并提供解决方案)。

select count(id) from table 
where name LIKE ('%[^0-9abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ]%')

点击此链接https://msdn.microsoft.com/en-us/library/ms179859.aspx (以下是从链接复制的内容)

[^]任何不在指定范围内的单个字符([^ a-f])或set([^ abcdef])。 WHERE au_lname LIKE'de [^ l]%'所有作者姓氏以de开头,后面的字母不是l。

答案 1 :(得分:0)

我不知道DVT解决方案是否对我不起作用,因为我在Redshift上尝试它。 无论如何,我操纵他的解决方案以接受红移逻辑,它的工作原理如下:

select count(*)
from table
where ( name !~*  '([A-Z].*)' )

for more details