分支结构case...end

语法:

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

 

posted @ 2019-05-15 22:34  我是神奇的小白  阅读(256)  评论(0编辑  收藏  举报