CASE WHEN的两种表达形式:方式一:

CASE

WHEN  D10='成功签收' THEN 1

WHEN  D11='成功签收' THEN 1

ELSE NULL END

WHEN 中间是用判断表达式

方式二:

CASE D10

WHEN '成功签收' THEN 1

WHEN '运输途中' THEN 2

ELSE '其他状态' END

方式一适合对一条记录中的多列进行判断。

方式二适合对一列中的多个条记录进行判断。

CASE WHEN在不同语句位置的用法

SELECT CASE WHEN 用法SELECT COUNTRY,

COUNT(CASE WHEN D10 = '成功签收' THEN 1 ELSE NULL END) D10,

COUNT(CASE WHEN D11 = '成功签收' THEN 1 ELSE NULL END) D11,

COUNT(CASE WHEN D12 = '成功签收' THEN 1 ELSE NULL END) D12,

COUNT(CASE WHEN D13 = '成功签收' THEN 1 ELSE NULL END) D13,

COUNT(CASE WHEN D14 = '成功签收' THEN 1 ELSE NULL END) D14,

COUNT(CASE WHEN D15 = '成功签收' THEN 1 ELSE NULL END) D15

FROM ......

WHERE CASE WHEN 用法SELECT * FROMWHERE(CASE

WHEN expr1 = 'search1' AND expr2 IN ('search2', 'search3') THEN

1

WHEN expr3 IN ('search4', 'search5') THEN

2

ELSE

0

END) = 1

GROUP BY CASE WHEN 用法SELECT CASE

WHEN SALARY <= 500 THEN

'1'

WHEN SALARY > 500 AND SALARY <= 600 THEN

'2'

WHEN SALARY > 600 AND SALARY <= 800 THEN

'3'

WHEN SALARY > 800 AND SALARY <= 1000 THEN

'4'

ELSE NULL END SALARY_CLASS,

COUNT(*)

FROM SALARY GROUP BY CASE

WHEN SALARY <= 500 THEN

'1'

WHEN SALARY > 500 AND SALARY <= 600 THEN

'2'

WHEN SALARY > 600 AND SALARY <= 800 THEN

'3'

WHEN SALARY > 800 AND SALARY <= 1000 THEN

'4'

ELSE NULL END;

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐