我想查找字符串列中的值不具有某些字符的所有行(具體[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