Oracle SQL中的条件表达式
在编程语言中常用的条件表达式就是if了,在oracle中也有类似打条件表达式 case
比如,我们要实现一个个员工涨工资的SQL,总裁(PRESIDENT)涨1000,经理(MANAGER)涨800,其他人涨400. 然后将将涨前,涨后的薪水列出
这件事在编程语言里和容易做到思路如下:
if 是总裁(‘PRESIDENT’;) then +1000
else if 是经理(‘MANAGER’;) then +800
else +400
但是sql里面并没有if语句,但是oracle提供了case来代替if
SELECT ename, job, sal 原工资, CASE job WHEN 'PRESIDENT' THEN sal+100
WHEN 'MANAGER' THEN sal+800
ELSE sal+400
END 涨后工资
from emp;
分割符。
以上功能还可以使用decode函数来实现,)
除第一个和最后一个参数之外,中间的参数都是成对呈现的 代码如下:
SELECT ename, job, sal 原工资, DECODE(job, 'PRESIDENT', sal+1000,
'MANAGER', sal+800,
sal+400) AS 涨后工资
FROM emp;
最后修改于 2015-12-25