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