语法:
case
when 条件1 then 结果1
when 条件2 then 结果2
。。。
else 其他结果
end
执行顺序
条件1成立执行结果1
条件2成立执行结果2
如果所有的when中的条件都不成立,则执行else中的结果
说明:else可省略,如果省略else并且when的条件表达式的结果都不为true,则case语句返回null
例子:
--采用美国的ABCDE五级打分制显示学生考试成绩
--A级:90分以上
--B级: 80分以上
--C级:70分以上
--D级:60分以上
--E级:60分一下
use E_Market
declare @x int
set @x=30
--使用case...end进行多重判断,选择一个进行执行
select 成绩=case
when @x>=90 then ‘A‘
when @x>=80 then ‘B‘
when @x>=70 then ‘C‘
when @x>=60 then ‘D‘
else ‘E‘
end
go
--case....end在sql语句中的使用、
--购买次数为一次的为普通会员,2-5次的为白金会员,6-10次的vip 会员,10次以上的为vip白金会员
select 用户编号=UserId, 会员级别=
case
when count(*) =1 then ‘普通会员‘
when count(*) between 2 and 5 then ‘白金会员‘
when count(*) between 6 and 10 then ‘VIP白金会员‘
else ‘VIP白金会员‘
end
from OrderInfo
group by UserId
原文:https://www.cnblogs.com/zhangxudong-cnblogs/p/10872649.html