Oracle/SQL-查找记录,或,则为 null 或可能不存在或者是 null 另一个表中

标签: sql Oracle
发布时间: 2017/4/15 18:56:53
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我试图做的是返回所有的记录我的人表的辅助表中不存在或它们确实存在,但只有一个他们具有空值在两个特定领域之一。 所以给出下面的表

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

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

我会回去以下

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

这是因为人 123 辅助表中不存在。 因为他们的存在,但其中的两个列都为 null,也将返回 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
        )
;
官方微信
官方QQ群
31647020