Oracle/SQL - 在另一个表中查找或为空或可能不存在或为空的记录

Posted

技术标签:

【中文标题】Oracle/SQL - 在另一个表中查找或为空或可能不存在或为空的记录【英文标题】:Oracle/SQL - Find records that or null or may not exist or are null in another table 【发布时间】:2012-10-11 20:01:36 【问题描述】:

我要做的是返回我的个人表中不存在或确实存在的所有记录,但前提是它们在两个特定字段之一中具有空值。所以给定下表

person_id   ....
----------------
123         ....
456         ....
789         ....

p_id    colA    colB
--------------------
456     aadl
789     023j    ljlj

我会得到以下内容

person_id   ....
----------------
123         ....
456         ....

这可能是因为辅助表中不存在人员 123。也将返回人员 456,因为它们存在,但两列之一为空。

谢谢!

【问题讨论】:

【参考方案1】:

你可以写:

SELECT *
  FROM persons
 WHERE person_id NOT IN
        ( SELECT p_id
            FROM secondary_table
           WHERE colA IS NOT NULL
             AND colB IS NOT NULL
        )
;

【讨论】:

如此简单....大声笑这将成为更大查询的一部分,我让其复杂性阻碍了最简单的解决方案。

以上是关于Oracle/SQL - 在另一个表中查找或为空或可能不存在或为空的记录的主要内容,如果未能解决你的问题,请参考以下文章

如何检查数据读取器是不是为空或为空

检查所有三列是不是不为空或为空

如果它为空或为空,如何从序列化中忽略可为空的属性?

选择 mongoid 中不为空或为空的位置

如何在 iOS 中检查 NSArray 是不是为空或为空?

当值为空或为空时如何返回默认值