我的表格中有一个名为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)
答案 0 :(得分:3)
简短回答?不可以。您必须使用IS NULL
谓词。 NULL!= NULL(两个NULL值不一定相等),因此任何类型的equals NULL
,in (..., 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)