我想找到string列中的值不具有某些字符的所有行(具体为[a-Z0-9 \ t \ n])我该如何在sql中执行此操作?
我尝试使用like operator
SELECT ***
where column like '%[^ a-Z0-9 \t\n]%'
然而,它不起作用,我得到的行具有字符和数字。
答案 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]%'