我想查找字符串列中的值不具有某些字符的所有行(具体[a-Z0-9 \ t \ n])我该怎么办它在SQL?SQL查找所有没有特定字符的行
我试图像运营商做
SELECT ***
where column like '%[^ a-Z0-9 \t\n]%'
但是,它不工作,我得到的是具有字符和数字行。
我想查找字符串列中的值不具有某些字符的所有行(具体[a-Z0-9 \ t \ n])我该怎么办它在SQL?SQL查找所有没有特定字符的行
我试图像运营商做
SELECT ***
where column like '%[^ a-Z0-9 \t\n]%'
但是,它不工作,我得到的是具有字符和数字行。
要提取含有比字母,数字,空格,制表符和新行定界符其他任何字符的所有记录:
SELECT ***
WHERE column like '%[^A-Za-z0-9 \t\n]%'
注意[^A-Za-z0-9 \t\n]
表示除字母,数字,空格,制表符等什么,和新的分界线。
你的逻辑是反转的。我想你想:
where column not like '%[^ a-Z0-9 \t\n]%'
我不认为SQL Server解释\t
和\n
为特殊字符。您可能需要插入字符的实际值。 (见here。)
添加DBMS标签请,并添加一些示例数据和预期输出 – Jens
在SQL命令使用“!”而不是“^”。“!”在SQL中意味着“不”。 例如: SELECT * FROM Customers WHERE CustomerName LIKE'[!A-D]%'; - 这不会返回CustomersName以A开头到D。 –
使用'%[^ A-Za-z0-9 \ t \ n]%'而不是 – degant