zl程序教程

您现在的位置是:首页 >  其他

当前栏目

case when 与 decode 用法详解程序员

程序员 详解 用法 when case decode
2023-06-13 09:20:21 时间

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 3000 

 then middle salary 

 when sal between 3000 and 5000 

 then high salary 

 end case 

from emp

用case when处理空值:

select case 

 when comm is null 

 then 0 

 else comm 

 end comm 

 from 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导致无法使用到索引

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/7249.html

服务器部署程序员系统优化网站设置运维