语法:
CASE
WHEN 条件1 THEN 结果1
WHEN 条件2 THEN 结果2
...ELSE 其他结果
END
执行顺序:
条件1成立执行结果1
条件2成立执行结果2
如果所有WHEN的条件都不成立,则执行ELSE中的结果。
说明:ELSE可省略,如果省略ELSE并且WHEN的表达式的都不为TRUE,
那么ELSE返回NULL。
使用ABCDE打分制给学生打分:
--A级:90分以上
--B级:80分以上
--C级:70分以上
--D级:60分以上
--E级:60分以下
DECLARE @scroe int
SET @scroe =93
--使用CASE...END 进行多重判断。选择一个去执行:
WHEN @scroe>=90 THEN'A'
WHEN @scroe>80 AND @scroe<=89THEN'B'
WHEN @scroe >70 AND @scroe<80 THEN'C'
WHEN @scroe> 60 AND @scroe<70 THEN'D'
ELSE 'E'
下面看看CASE ...END如何在SQL语句中使用:
---等级划分:
--购买一次为普通会员,购买2-5次为白金会员,购买6-10为VIP会员,10次以上为为VIP白金会员:
SELECT 用户编号=UserId 次数=
CASE
WHEN COUNT(*)=1 '普通会员'
WHEN COUNT(*) BETWEEN 2 AND 5 '白金会员'
WHEN COUNT(*) BETWEEN 6 AND 10 'VIP会员'
ELSE'白金VIP会员'
FROM OrderInfo
GOUP BY UserID