SQL查找没有特定字符的所有行

时间:2017-05-30 09:49:18

标签: sql sql-server regex database

我想找到string列中的值不具有某些字符的所有行(具体为[a-Z0-9 \ t \ n])我该如何在sql中执行此操作?

我尝试使用like operator

SELECT ***
where column like '%[^ a-Z0-9 \t\n]%' 

然而,它不起作用,我得到的行具有字符和数字。

3 个答案:

答案 0 :(得分:1)

要获取包含除字母,数字,空格,制表符和换行符之外的任何字符的所有记录

SELECT ***
WHERE column like '%[^A-Za-z0-9 \t\n]%'

请注意,[^A-Za-z0-9 \t\n]表示除字母数字字符,空格,制表符和换行符之外的任何内容。

答案 1 :(得分:1)

你的逻辑是倒置的。我想你想要:

where column not like '%[^ a-Z0-9 \t\n]%' 

我不认为SQL Server会将\t\n解释为特殊字符。您可能需要插入字符的实际值。 (见here。)

答案 2 :(得分:1)

SELECT ***
WHERE column like '%[^A-Za-z0-9 \t\n]%'