本文主要是介绍case when 与 decode 用法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
case when 在不同条件需要有不同返回值的情况下使用非常方便,可以在给变量赋值时使用,也可以在select查询语句中使用。
case搜索语句格式:
case
when 条件1 then 返回值1
when 条件2 then 返回值2
...
else 返回值N
end;
case when使用示例代码:
select empno,ename,job,case when sal between 0 and 1500 then 'low salary'when sal between 1500 and 3000then 'middle salary'when sal between 3000 and 5000then 'high salary'end case
from emp
用case when处理空值:
select case when comm is null then 0else commend commfrom emp
decode的使用格式:decode(变量或表达式,值1,返回值1,值2,返回值2,...,默认值)
decode使用示例代码:
select empno,ename,job,decode(job,'CLERK','low degree','SALESMAN','middle degree','others') degree
from emp
decode处理空值:
SELECT empno,ename,decode(comm,NULL,0,comm)
FROM emp
case when 和decode的比较:
一、decode是pl/sql语法,只能在oracle中使用,casewhen是标准SQL的语法,哪儿都能用,也就是说移植性更强.
二、case 里可以写>,in等表达式,decode只是=
三、建函数索引的时候用decode比较好,oracle会自动转换case when导致无法使用到索引这篇关于case when 与 decode 用法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!