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

PostgreSQL中Unknown和Null是否等价?

结果产生的核心原因

  • SQL标准定义了三值布尔逻辑,布尔类型的合法取值为true、false、unknown三种,所有涉及NULL的比较运算(如示例中的NULL = 7),运算结果默认为unknown。
  • PostgreSQL在实现时,将布尔类型的unknown值和通用空值NULL做了等价处理,unknown就是布尔场景下的NULL表示,二者没有逻辑差异。
  • 示例中当col为NULL时,col = 7的运算结果为unknown,等价于NULL,因此(col = 7) IS NULL的返回结果为true,和你观测到的输出完全匹配。

注意事项

如果你的判断目标是字段本身是否为空,直接写col IS NULL即可,不要包裹额外的比较运算,避免混淆比较运算结果的空值和字段本身的空值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 18:45:02