查询中的SQL选择

查询中的SQL选择,sql,Sql,我的表中有一个名为id的数字列。 我想选择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) 简短的回答?否。您必须使用I

我的表中有一个名为
id
的数字列。 我想选择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)

简短的回答?否。您必须使用
IS NULL
谓词。空!=空值(两个空值不一定相等),因此(…,NULL)中的任何类型的
等于空值都不起作用。

简短回答?否。您必须使用
IS NULL
谓词。空!=NULL(两个NULL值不一定相等),因此(…,NULL)
中的任何类型的
等于NULL
都不起作用。

必须使用:

SELECT * FROM MYTABLE WHERE ID IN (1,2,3) OR ID IS NULL
NULL始终需要对IS NULL进行特殊处理。

您必须使用:

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

NULL始终需要对IS NULL进行特殊处理。

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

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

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

SELECT * FROM MYTABLE WHERE NVL(ID,-1) IN (1,2,3,-1)
在sql server中

SELECT * FROM MYTABLE WHERE isnull(ID,0) IN (1,2,3,0)
在sql server中

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

当询问正确的语法时,如果您告诉我们您使用的是哪个品牌的SQL,这会有所帮助…:p您有一个适合您的查询。为什么不使用这个呢?在询问正确的语法时,如果您告诉我们您使用的是哪种SQL品牌,这会有所帮助…:p您有一个适合您的查询。你为什么不想用那个?