CASE WHEN THEN ELSE END使用

case when两种简单的用法

--简单Case函数
CASE Is_Holiday
         WHEN '1' THEN '是'
         WHEN '0' THEN '否'
ELSE '其他' END

--Case搜索函数
CASE WHEN Is_Holiday = '1' THEN '是'
         WHEN sex = '0' THEN '否'
ELSE '其他' END

一:case when的嵌套使用

CASE WHEN HCZT=1 
THEN 
(CASE WHEN SHBZF=0 THEN '未审核' else '已审核' end)                                 
ELSE '' END SHBZ
CASE WHEN HCZT=1 THEN (CASE WHEN SHBZF=0 THEN '未审核' WHEN SHBZF=1 THEN '已审核' end)                                 
ELSE

CASE WHEN HCZT = 0 THEN(CASE WHEN SHBZ = 0 THEN '未审核' WHEN SHBZ = 1 THEN '已审核'end)
ELSE

CASE WHEN HCZT = 2 THEN(CASE WHEN SHBZZ = 0 THEN '未审核' WHEN SHBZZ = 1 THEN '已审'end)
END 
END 
END SHBZ

二:检查两个表数据是否一致,否存在

-使用IN
SELECT stuID,
CASE WHEN stuID IN ( SELECT keyCol FROM tbl_B )
THEN 'Matched'
ELSE 'Unmatched' END student
FROM tbl_A;

三:用一个SQL语句完成不同条件的分组。
这里写图片描述
这里写图片描述

SELECT class,
       SUM( CASE WHEN subject = '1' THEN 
                      score ELSE 0 END),  --科目1成绩
       SUM( CASE WHEN subject = '2' THEN 
                      score ELSE 0 END)   --科目2成绩
FROM  Table
GROUP BY class;

这样我们使用Select,完成对二维表的输出形式。

猜你喜欢

转载自blog.csdn.net/lnazj/article/details/80203154