SQL Select-IN查询

时间:2012-05-10 05:28:57

标签: sql

我的表格中有一个名为id的数字列。 我想选择在1,2,3中具有id的查询和在其中具有“null”的查询。

我不想使用如下的查询:

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)

4 个答案:

答案 0 :(得分:3)

简短回答?不可以。您必须使用IS NULL谓词。 NULL!= NULL(两个NULL值不一定相等),因此任何类型的equals NULLin (..., NULL)都不起作用。

答案 1 :(得分:1)

如果您使用oracle,这可能是解决方案。

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

答案 2 :(得分:0)

您必须使用:

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

NULL总是需要特殊处理IS NULL。

答案 3 :(得分:0)

在sql server

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