SQL选择未查看正确的数据
我之前使用过MySQL,在那里我可以通过这个select查询得到正确的响应SQL选择未查看正确的数据,sql,select,Sql,Select,我之前使用过MySQL,在那里我可以通过这个select查询得到正确的响应 SELECT * FROM TABLE WHERE COLUMN1 NOT IN ('Done', 'Closed') AND COLUMN2 IN ('Dude1', 'Dude2', 'Dude3') 现在我们已经将db更改为oracle,如果COLUMN1中没有值,它将被忽略。换句话说,它是空的 我已经尝试了我认为是正确的方式来提出这个问题,但它的表现并不像我所希望的那样。也许有人有一个解决方案,我可以
SELECT *
FROM TABLE
WHERE COLUMN1 NOT IN ('Done', 'Closed')
AND COLUMN2 IN ('Dude1', 'Dude2', 'Dude3')
现在我们已经将db更改为oracle,如果COLUMN1中没有值,它将被忽略。换句话说,它是空的
我已经尝试了我认为是正确的方式来提出这个问题,但它的表现并不像我所希望的那样。也许有人有一个解决方案,我可以检索与MySQL相同的信息
我最后一次尝试的结果是这个查询
SELECT *
FROM TABLE
WHERE COLUMN1 NOT IN ('Done', 'Closed')
OR COLUMN1 IS NULL
AND COLUMN2 IN ('Dude1', 'Dude2', 'Dude3')
当我运行这个查询时,我在第1列中得到了所有的null/empty值,但在第2列中我也从回复中得到了Dude6。。。我想不出还有什么别的办法
如果我删除
OR Column1 IS NULL
我不会得到神秘的Dude6作为响应,但我也不会得到column1为空/null且包含Dude1的行。您只需要在
或表达式周围加上括号:
SELECT *
FROM TABLE
WHERE
(COLUMN1 NOT IN ('Done','Closed') OR COLUMN1 IS NULL)
AND COLUMN2 IN ('Dude1','Dude2','Dude3')