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

SQL CASE语句逻辑错误:分类5、6未触发全部归入分类1问题求助

问题根因

CASE WHEN 语句遵循顺序匹配原则,会从上到下依次校验条件,一旦某条条件匹配成功就直接返回对应结果,不会再执行后续的条件判断。
你写的分类1的条件 Sum(SubscriptLineAmount) > 0 and sum([Previous Amount]) = 0 完全包含了分类5、6的前置判断条件,所有符合5、6的数据首先会命中分类1的规则,自然不会走到后面的5、6判断逻辑。

修正方案

调整条件的先后顺序,把颗粒度更细、判断维度更多的5、6规则放到分类1前面即可,调整后的代码如下:

case 
    when Sum(SubscriptLineAmount) > 0 and sum([Previous Amount]) = 0 and [SUBSCRIPTION ORDER TYPE LIST] = 'Acquisition' then 5  
    when Sum(SubscriptLineAmount) > 0 and sum([Previous Amount]) = 0  and [SUBSCRIPTION ORDER TYPE LIST] = 'Other' then 6 
    when Sum(SubscriptLineAmount) > 0 and sum([Previous Amount]) = 0 then 1 
    when Sum(SubscriptLineAmount) > 0 and Sum(differenceAmount) > 0  then 2
    when Sum(SubscriptLineAmount) > 0 and Sum(differenceAmount) < 0  then 3
    when Sum(SubscriptLineAmount) = 0 and Sum(differenceAmount) <> 0  then 4 
    else 7 
end classification

额外注意事项

  • 如果你当前是聚合查询(用到了sum聚合函数),[SUBSCRIPTION ORDER TYPE LIST] 字段需要加入到GROUP BY分组维度中,否则SQL会执行报错。
  • 若你需要分类1专门对应[SUBSCRIPTION ORDER TYPE LIST]既不是Acquisition也不是Other的场景,上述调整后的逻辑已经自动满足,因为这两类已经被前面的5、6规则拦截。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 05:57:02