SQL里类似EXCEL里的IFS的多条件判断——Case When Then
基本格式:
CASE
WHEN 条件1 THEN 结果1
WHEN 条件2 THEN 结果2
WHEN 条件3 THEN 结果3
WHEN 条件4 THEN 结果4
.........
WHEN 条件N THEN 结果N
ELSE 结果X
END
Case可分为2种:简单Case函数和Case搜索函数。
1.简单Case函数
CASE sex
WHEN '1' THEN '男'
WHEN '2' THEN '女'
ELSE '其他'
END
2.Case搜索函数
CASE
WHEN sex = '1' THEN '男'
WHEN sex = '2' THEN '女'
ELSE '其他'
END
例如:
SELECT SC.CId,
SUM(CASE WHEN SC.score>=60 THEN 1 ELSE 0 END)/COUNT(*)AS 及格率,
SUM(CASE WHEN SC.score>=70 AND SC.score<80 THEN 1 ELSE 0 END)/COUNT(*)AS 中等率,
SUM(CASE WHEN SC.score>=80 AND SC.score<90 and SC.score<80 THEN 1 ELSE 0 END)/COUNT(*)AS 优良率,
SUM(CASE WHEN SC.score>=90 THEN 1 ELSE 0 END)/COUNT(*)AS 优秀率
FROM SC
GROUP BY SC.CId