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

SQL中SUM结合CASE WHEN多OR不等于条件执行结果异常求助

问题原因

你编写的SQL存在布尔运算逻辑错误:

  • 用OR连接多个不等于判断时,对任意给定的ReworkCode.CodeNum值,必然满足至少一个不等于条件:例如值为4时,会满足!=5、!=6、!=7的判断,因此整个CASE WHEN的判断结果永远为真,最终统计结果等于表的总行数,完全不符合你预期的「排除4/5/6/7这几个值统计」的需求。
解决方法

有两种写法可实现你要的统计逻辑:

  1. 将OR替换为AND
SUM(CASE WHEN ReworkCode.CodeNum != 4 
      AND ReworkCode.CodeNum != 5 
      AND ReworkCode.CodeNum != 6 
      AND ReworkCode.CodeNum != 7 THEN 1 ELSE 0 END) AS NumberRejectedByOther
  1. 使用更简洁的NOT IN语法,可读性更高
SUM(CASE WHEN ReworkCode.CodeNum NOT IN (4,5,6,7) THEN 1 ELSE 0 END) AS NumberRejectedByOther

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 01:06:04