如何使用sum(case)和三个条件

时间:2017-02-17 15:20:10

标签: sql

我通常使用sum(case)来获得一些列的总和:

i.e. SUM(CASE WHEN over05 = 'OK' THEN 1 ELSE 0 END) AS OK_05

当我有一个包含两个值的列时,这是完美的,但是当我有一个列有三个值的列时:

 i.e. over 05 = '1' or 'X' or '2' 

我该怎么做(案例)?

1 个答案:

答案 0 :(得分:1)

如果您希望所有三个值都返回相同的值,则应使用IN()

SUM(
    CASE
    WHEN over05 IN ('1', 'X', '2') THEN 1
    ELSE 0 END
) AS OK_05

如果您希望每个值返回不同的值,则应使用多个WHEN ... THEN

SUM(
    CASE
    WHEN over05 = '1' THEN 1
    WHEN over05 = 'X' THEN 2
    WHEN over05 = '2' THEN 3
    ELSE 0 END
) AS OK_05
相关问题