2012-05-10 55 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

它没有工作。语法错误。 –