CASE/DECODE条件表达式

撰写时间: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表示表中

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DECODECASE WHEN都是在Oracle数据库中用于条件判断和值替换的语句。它们可以根据给定的条件返回不同的结果。 DECODE函数是Oracle特有的函数,它接受一个或多个表达式和一系列条件-结果对。它会逐个比较表达式条件,如果找到匹配的条件,则返回对应的结果。如果没有找到匹配的条件,则返回默认结果。DECODE函数的语法如下: ```sql DECODE(expression, search1, result1, search2, result2, ..., default_result) ``` CASE WHEN语句是标准SQL语句,在Oracle和其他数据库中都可以使用。它使用类似于编程语言中的if-else语句的结构。CASE WHEN语句的语法如下: ```sql CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 ... ELSE default_result END ``` DECODECASE WHEN在功能上是相似的,都可以根据条件返回不同的结果。但它们在语法和使用上有一些区别。 DECODE函数的语法比较简洁,适用于只有一个表达式多个条件-结果对的情况。它的执行效率相对较高,尤其是在使用常量作为条件时。 CASE WHEN语句的语法更加灵活,可以处理复杂的条件逻辑。它适用于多个条件多个结果的情况。CASE WHEN语句的可读性更好,更容易理解和维护。 总的来说,如果条件比较简单且只有一个表达式,可以使用DECODE函数。如果条件比较复杂或需要处理多个条件多个结果,可以使用CASE WHEN语句。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值