分支结构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

 

 

列子:
        采用ABCD的形式为学生成绩评分
        A 90分以上
        B 80分以上
        C 70分以上
        D 60分以上
        E 60分以下
解:
    declare @ a int            --声明@a 是变量
    set @a =93               --为变量赋值
    
select 成绩=case
when @a >=90 then ‘A’
when @a >=80 and @a <=89 then ‘B’
when @a between 70 and 79 then ‘C’
when @a between 60 and 69 then ‘D’
else ‘E’
end
go          这里的between……and 在什么什么之间

case…..end 在sql语句中的使用
    购买为1次的为普通会员,2-5次为白金会员,6-10次为VIP会员 10次以上为VIP白金会员。
    select 用户好=userid,次数=case    
                            when count (*)=1 then ‘普通会员’
                            when count(*) between 2 and5then‘白金会员’
                            when count(*) between 6 and 10 ‘vip会员’
                            end 
                                from orderinfo group by userid (serid和次数要分级)

 

posted @ 2018-03-30 13:46  WhiteSpace  阅读(173)  评论(0编辑  收藏  举报