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,完成对二维表的输出形式。