CASE/DECODE条件表达式

本文介绍了在SQL语句中如何使用CASE和DECODE进行条件判断。CASE表达式虽然较为冗长但具有较高可读性,而DECODE函数则简洁明了。两者都能实现IF-THEN-ELSE逻辑,适用于不同的场景。文章通过实例展示了它们的使用方法,并指出在某些特殊情况下,可以直接在WHEN语句中设定判断条件。同时,文章提醒在使用COUNT函数时要注意处理NULL值的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

撰写时间:2019年03月27日

在 SQL 语句中使用IF-THEN-ELSE 逻辑
两种方法:
—— CASE 表达式
—— DECODE 函数

这两种方法各有优点,使用方法也差不多,多掌握一点知识不吃亏。
①使用 DECODE 函数 :
格式:DECODE(value,comparison1,return1,comparison2,return2…,else),
其中 value表示表中任意一列或计算结果,每一行都对 value进行判断,如果 value符合-条件 comparison1 则 DECODE 的结果为 return1,依次类推,如果都不符合结果为 else

例①:查找出职位为AD_PRES的奖金为290000,AD_VP为190000,其余的为90000
select last_name,job_id,
decode(job_id,'AD_PRES',290000,'AD_VP',190000,90000)奖金
from employees

使用 CASE 代替 DECODE,CASE函数 显得比较冗长但是可读性高,CASE 函数使用关键字 WHEN、THEN、ELSE 和 END
②使用 DECODE 函数 :格式:CASE expr
WHEN comparison_expr1 THEN return_expr1
WHEN comparison_expr2 THEN return_expr2
WHEN comparison_exprn THEN return_exprn
ELSE else_expr
END

其中 expr表示表中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值