CASE WHEN 两种用法

来源:互联网 发布:lol数据异常请规范游戏 编辑:程序博客网 时间:2024/06/04 18:36

(1)枚举这个字段的各个可能的值,对枚举到的每一个具体的值单独作出对应的处理
举例说明

SELECT    CASE a.AFTER_QUALITYWHEN '0' THEN    '过免维期'WHEN '1' THEN    '未过免维期'ELSE    '错误数据'END AS AFTER_QUALITYFROM    t_maintain_log a

数据库表内容:
这里写图片描述
运行结果:
这里写图片描述
(2)判断该字段的范围

SELECT    d.[单项编号] 单项编号,    c.[单项财务收入],    e.[单项合同金额],CASE WHEN c.单项财务收入 is NULL or c.单项财务收入 <0 THEN    '无收入'ELSE    '有收入'END AS 有无收入,CASE WHEN e.单项合同金额 IS NULL OR e.单项合同金额 < 0 THEN  '无合同'ELSE    '有合同'END AS 有无合同FROM    [BI_单项_FOR_ANALYSE] dLEFT JOIN (    SELECT        sr.[单项编号],        SUM (sr.[单项财务收入]) 单项财务收入    FROM        [BI_单项财务收入_FOR_ANALYSE] AS sr    GROUP BY        sr.[单项编号]) c ON d.[单项编号] = c.[单项编号]LEFT JOIN (    SELECT        mx.[单项编号],        SUM (mx.[单项合同金额]) 单项合同金额    FROM        BI_合同明细_FOR_ANALYSE AS mx    GROUP BY        mx.[单项编号]) e ON d.[单项编号] = e.[单项编号];
1 1
原创粉丝点击