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

Oracle SQL技术咨询:如何排除A、B列均为NULL的数据行

解决Oracle SQL排除双NULL行的问题

我懂你的困扰!你想要的是只排除A和B两列同时为NULL的行,剩下的只要至少有一列有值的都保留,但之前用AND的条件太苛刻,只留下了两列都非空的记录。咱们调整一下条件逻辑就搞定了。

两种可行的写法

方法一:使用OR逻辑(直观易懂)

SELECT * FROM Table
WHERE (A IS NOT NULL) OR (B IS NOT NULL);

这个语句的逻辑很直白:只要A列不为空 或者 B列不为空,这条数据就会被选中,完美跳过A、B全为NULL的行。

方法二:取反双NULL条件(逻辑严谨)

如果你更喜欢直接针对“要排除的情况”写条件,可以用NOT取反:

SELECT * FROM Table
WHERE NOT (A IS NULL AND B IS NULL);

这句话就是明确告诉Oracle:排除掉那些A和B同时为NULL的行,剩下的都保留,效果和方法一完全一致。

验证你的示例数据

用这两个语句查询你给出的表数据:

  • 行1(A=null, B=1):B非空 → 保留
  • 行2(A=null, B=null):双NULL → 排除
  • 行3(A=1, B=null):A非空 → 保留
  • 行4(A=1, B=1):两列都非空 → 保留

刚好符合你想要的结果~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 07:51:49