2017-05-30 63 views
0

我想查找字符串列中的值不具有某些字符的所有行(具体[a-Z0-9 \ t \ n])我该怎么办它在SQL?SQL查找所有没有特定字符的行

我试图像运营商做

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

但是,它不工作,我得到的是具有字符和数字行。

+2

添加DBMS标签请,并添加一些示例数据和预期输出 – Jens

+0

在SQL命令使用“!”而不是“^”。“!”在SQL中意味着“不”。 例如: SELECT * FROM Customers WHERE CustomerName LIKE'[!A-D]%'; - 这不会返回CustomersName以A开头到D。 –

+0

使用'%[^ A-Za-z0-9 \ t \ n]%'而不是 – degant

回答

1

要提取含有比字母,数字,空格,制表符和新行定界符其他任何字符的所有记录:

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

注意[^A-Za-z0-9 \t\n]表示除字母,数字,空格,制表符等什么,和新的分界线。

1

你的逻辑是反转的。我想你想:

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

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

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

您能否为您的答案添加更多解释? – hassan

相关问题