PostgreSQL 9.6。检查字段是否为空

Postgresql 9.6. Check if a field is empty

在 Postgresql 9.6 中,我有一个 table 这样的:

ID  ADDRESS_1  ADDRESS_2
 1    bac1       def2
 2    bac2  

如果我执行这个

SELECT exists (SELECT ADDRESS_2 FROM my_table WHERE ADDRESS_1='bac3');

我得到错误答案(预期)

但是,如果我执行这个

SELECT exists (SELECT ADDRESS_2 FROM my_table WHERE ADDRESS_1='bac2');

我得到正确的答案(没想到)

我估计是因为有一个Null值。

所以我的objective是为最后一个获取False值。

有什么想法或想法吗?

提前致谢

第二个查询之所以是"failing"是因为EXISTS子句中有符合条件的记录。如果您添加逻辑以在 ADDRESS_2 列中也坚持非 NULL 值,您应该得到您想要的行为:

SELECT EXISTS
    (SELECT ADDRESS_2 FROM my_table
     WHERE ADDRESS_1 = 'bac2' AND ADDRESS_2 IS NOT NULL);