SQL 在SELECT语句里使用条件逻辑

描述:

你想在 SELECT 语句中针对查询结果值执行 IF-ELSE 操作。例如,你想生成类似这样的结果:如果员工的工资少于 2000 美元,就返回 UNDERPAID;如果超过 4000 美元就返回 OVERPAID;若介于两者之间则返回 OK。查询结果如下所示。

ENAME             SAL STATUS
---------- ---------- ---------
SMITH             800 UNDERPAID
ALLEN            1600 UNDERPAID
WARD             1250 UNDERPAID
JONES            2975 OK
MARTIN           1250 UNDERPAID
BLAKE            2850 OK
CLARK            2450 OK
SCOTT            3000 OK
KING             5000 OVERPAID
TURNER           1500 UNDERPAID
ADAMS            1100 UNDERPAID
JAMES             950 UNDERPAID
FORD             3000 OK
MILLER           1300 UNDERPAID

方法:

在 SELECT 语句里直接使用 CASE 表达式来执行条件逻辑。

select ename,sal,
       case when sal <= 2000 then 'UNDERPAID'
            when sal >= 4000 then 'OVERPAID'
            else 'OK'
       end as status
from emp

扩展知识:

CASE 表达式能对查询结果执行条件逻辑判断。你可以为 CASE 表达式的执行结果取一个别名,使结果集更有可读性。就本例而言,STATUS 就是 CASE 表达式执行结果的别名。ELSE 子句是可选的,若没有它,对于不满足测试条件的行,CASE 表达式会返回 Null

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值