SQL查询中的空处理

时间:2017-11-09 15:03:51

标签: sql oracle null conditional-statements dynamic-queries

我有下表:

All records

我想获得满足某些条件的记录。

以下是查询,它返回3个结果:

Records satisfying query

现在我想要不满足剩余记录的记录(即不满足前一个查询条件的记录),我希望总共有4行作为回报。所以我正在执行查询:

Query for remaining records

但是,没有返回记录号4,我知道col2值'null'导致了这个问题。

我甚至尝试过使用NVL和合并功能,但没有任何运气:

nvl_coalesce_queries

所以基本上,我想要'NOT'查询中的4行。

如果有任何建议,请告诉我。

2 个答案:

答案 0 :(得分:1)

使用类似

的内容
select *
from tmp_dbg3
where col0 not in (select col0 from tmp_dbg3 where <your 'satisfying' condition>)

答案 1 :(得分:0)

尝试使用NOT IN operator

https://technet.microsoft.com/en-us/library/ms189062(v=sql.105).aspx

SELECT * FROM database
WHERE id NOT IN (SELECT id FROM database WHERE  *your conditions*)

我假设数据库中的第一列是自动增量键。我个人更喜欢用它来确定哪些列不在你的条件下而不是col1。