decode
不同工种按照一定得比例涨工资
select empno,ename,job,sal,decode(job,'PRESIDENT',1.10*sal,
'ANALYST',1.30*sal,
'MANAGER',1.30*sal,
'SALESMAN',1.20*sal,
sal) raisedsal
from emp order by job;
当工种是PRESIDENT是涨工资10%,当工种是ANALYST时涨工资30%以此例推,其他没有标明表达式的的工资为sal也就是没有涨工资。
注意decode字段最好要指定别名,否则这个字段头可能会过长。
case
SQL>select empno,ename,job,sal,case job when 'PRESIDENT' then 1.10*sal
when 'ANALYST' then 1.30*sal
when 'MANAGER' then 1.30*sal
when 'SALESMAN' then 1.20*sal
else sal end raisedsal
from emp order by job;
当工种是PRESIDENT是涨工资10%,当工种是ANALYST时涨工资30%以此例推,其他没有标明表达式的的工资为sal也就是没有涨工资。
注意case字段最好要指定别名,否则这个字段头可能会过长。注意表达式没有”,"分隔符。
decode和case都是单行函数。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/20844861/viewspace-594628/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/20844861/viewspace-594628/