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

SQL Server中如何查询installment列的0与NULL值?

问题原因&解决方案

为什么WHERE installment IN (0, NULL)不生效?

SQL里的NULL遵循三值逻辑,任何和NULL的比较(包括= NULL或者IN列表里包含NULL)都会返回UNKNOWN,而WHERE条件只会筛选出结果为TRUE的行。所以IN (0, NULL)本质等价于installment = 0 OR installment = NULL,其中installment = NULL永远不会成立,最终只会返回值为0的行。

正确写法

最直接的方式是分开判断0和NULL:

WHERE installment = 0 OR installment IS NULL

如果想简化写法,也可以用COALESCE把NULL转换成0再匹配(注意:如果列中存在其他会被COALESCE转为0的特殊值,这个方法需要谨慎使用):

WHERE COALESCE(installment, 0) = 0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 16:22:02