2017-05-30 61 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

相關問題