2017-03-22 97 views
0

我的表是這樣的:SQL Server:如何選擇不在表中的值?

ID | NAME 
1  | name1 
2  | name2 
NULL | name3 
3  | name4 

對於客戶我想那些誰不在列表中,像這樣的列表:

SELECT c.* 
FROM CUSTOMERS c 
WHERE c.ID NOT IN (1,3) 

但此查詢不給所有的希望行,因爲我想看到空值。

謝謝你們

你應該張貼在T-SQL的工作只是罰款
+3

和問題是...? – M84

+4

如果'c.ID'具有'NULL',則將'OR c.ID IS NULL'與'NOT IN'子句一起添加,因爲在這種情況下需要分別處理NULL值。 –

+0

我打賭@TomJMuthirenthi是對的。 OP,您需要[編輯]讓我們知道執行該聲明時會發生什麼,以及爲什麼結果不符合您的期望。 – Will

回答

2

Tom J Muthirenthi是正確的NULL在這種情況下需要分別處理值。

這做這項工作剛剛好:

SELECT c.* FROM CUSTOMERS c WHERE c.ID NOT IN (1,3) OR c.ID IS NULL