sql CASE()函数


CASE函数有两种用法:

用法1(只能实现简单的"等于"逻辑的判断):
CASE exp
WHEN value1 THEN returnvalue1
WHEN value2 THEN returnvalue2
WHEN value3 THEN returnvalue3
......
ELSE defaultreturnvalue
END (别名)

CASE 函数对表达式exp进行测试,如果exp等于value1则返回returnvalue1;如果exp等于value2则返回returnvalue2;...以此类推,如果不符合所有的when条件则返回默认值defaultvalue

例:表Customer中的Level字段是整型类型,它记录了客户的级别,如果为1则是vip用户,2是高级客户,3是普通用户,显然前台不应该展示1,2,3,而是应该展示相应的文字,这里就可以使用CASE函数进行处理,sql语句如下:
select Name,
    case Level 
    when 1 then 'vip客户'
    when 2 then '高级客户'
    when 3 then '普通用户'
    end LevelName
from Customer

用法2CASE 
WHEN con1 THEN returnvalue1
WHEN con2 THEN returnvalue2
WHEN con3 THEN returnvalue3
......
ELSE defaultreturnvalue
END (别名)

con1,con2,con3...为条件表达式,如果条件con1为真则返回returnvalue1;如果条件con2为真则返回returnvalue2;如果条件con3为真则返回returnvalue3;以此类推,如果不符合所有的when条件,则返回默认值defaultreturnvalue。这种用法没有限定对一个表达式进行判断,因此使用起来更加灵活。

例:判断一个人的体重是否正常,如果体重小于100则认为太瘦,如果大于150则认为太胖,在100-150之间则认为是正常的,sql语句如下:
select 
    case when Weight<100 then 'thin'
    when Weight>150 then 'fat'
    else 'ok'
    end isnormal
from Person
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值