SQL里類(lèi)似EXCEL里的IFS的多條件判斷——Case When Then
基本格式:
CASE
? ? WHEN 條件1 THEN 結(jié)果1
? ? WHEN 條件2 THEN 結(jié)果2
? ? WHEN 條件3 THEN 結(jié)果3
? ? WHEN 條件4 THEN 結(jié)果4
.........
? ? WHEN 條件N THEN 結(jié)果N
? ? ELSE 結(jié)果X
END
Case可分為2種:簡(jiǎn)單Case函數(shù)和Case搜索函數(shù)。
1.簡(jiǎn)單Case函數(shù)
CASE sex
? ? ? ?? WHEN '1' THEN '男'
? ? ? ?? WHEN '2' THEN '女'
? ? ? ?? ELSE '其他'?
END
2.Case搜索函數(shù)
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?優(yōu)良率,
SUM(CASE WHEN SC.score>=90 THEN 1 ELSE 0 END)/COUNT(*)AS?優(yōu)秀率
FROM SC
GROUP BY SC.CId