查询中的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您有一个适合您的查询。你为什么不想用那个?