You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL:IS NOT NULL语句未生效,需移除指定列含空值的行

问题分析与解决

你写的第一个查询逻辑搞反了——OR的意思是只要其中一列不为空就会被选中,这当然过滤不掉那些有一个空值的行。

你要移除所有x_orig或x_dest为空的行,反过来就是只保留x_orig和x_dest都不为空的行,所以查询条件应该用AND而非OR:

SELECT * FROM dump WHERE x_orig IS NOT NULL AND x_dest IS NOT NULL;

如果是要直接删除这些需要移除的行,用这条语句:

DELETE FROM dump WHERE x_orig IS NULL OR x_dest IS NULL;

另外你提到第二个查询能选出要移除的行,也可以用NOT取反来实现保留目标行的效果,和上面的SELECT语句等价:

SELECT * FROM dump WHERE NOT (x_orig IS NULL OR x_dest IS NULL);

内容的提问来源于stack exchange,提问作者AronBrownie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 05:19:52