2012-05-10 168 views
0

我的表中有一個名爲id的數字列。 我想選擇在1,2,3中具有id的查詢以及其中有'null'的查詢。SQL Select-IN查詢

我不想使用的查詢,如:

SELECT * FROM MYTABLE WHERE ID IN (1,2,3) OR ID IS NULL 

我可以使用類似:

SELECT * FROM MYTABLE WHERE ID IN (1,2,3,null) 

這可能嗎?以上查詢返回的結果與我的結果相同

SELECT * FROM MYTABLE WHERE ID IN (1,2,3) 
+0

當詢問正確的語法,它會如果您告訴我們您正在使用哪個品牌的SQL幫助...:P – McGarnagle

+0

您有對工作的查詢您。你爲什麼不想用那個? –

回答

1

如果使用oracle,這可能是解決方案。

SELECT * FROM MYTABLE WHERE NVL(ID,-1) IN (1,2,3,-1) 
+0

謝謝。有效。 :) –

3

簡答題?不可以。您必須使用IS NULL謂詞。 NULL!= NULL(兩個NULL值不一定相等),因此任何類型的equals NULL,in (..., NULL)都不會起作用。

+0

好的。謝謝:) –

0

您必須使用:

SELECT * FROM MYTABLE WHERE ID IN (1,2,3) OR ID IS NULL 

NULL總是需要IS NULL的特殊處理。

0
在SQL Server

SELECT * FROM MYTABLE WHERE isnull(ID,0) IN (1,2,3,0) 
+0

它沒有工作。語法錯誤。 –