CASEWHEN用法

四个状态

a 列 b列

1   a

1   b

3   b

case when  a = 1 then 100

when a = 1 and b = "b" then 200

else 0 end

这种可以实现吗

SQL ZxxT 发布于 2022-8-16 10:53
1min目标场景问卷 立即参与
回答问题
悬赏:0 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
Z4u3z1Lv6专家互助
发布于2022-8-16 10:54(编辑于 2022-8-16 10:58)

可以啊,这个应该是单引号

image.png

------------

case when  a = 1 AND B<>'B' then 100

when a = 1 and b = 'b' then 200

else 0 end

或是

case when a = 1 and b = 'b' then 200  when a = 1 then 100

else 0 end

  • ZxxT ZxxT(提问者) 我试了一下他会给两个1都生成100,而没有200
    2022-08-16 10:55 
  • Z4u3z1 Z4u3z1 回复 ZxxT(提问者) 从前到后满足了就不判断了 要不 你把第一个和第二个换个位置,要不把第一个再加点条件
    2022-08-16 10:56 
最佳回答
0
weibwLv7高级互助
发布于2022-8-16 10:54

你这自己已经写出来了啊

  • ZxxT ZxxT(提问者) 我试了一下他会给两个1都生成100,而没有200
    2022-08-16 10:55 
  • weibw weibw 回复 ZxxT(提问者) case when的执行顺序,排在前面的先执行
    2022-08-16 10:59 
  • 1关注人数
  • 244浏览人数
  • 最后回答于:2022-8-16 10:58
    请选择关闭问题的原因
    确定 取消
    返回顶部