8-05分支结构CASE..END

语法:

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

  

原文地址:https://www.cnblogs.com/gcmwalker/p/6102881.html