数据库case 和 decode 区别

/7.在员工表中查询出员工的工资,并计算应交税款:如果工
资小于1000,税率为0,如果工资大于等于1000并小于2000,
税率为10%,如果工资大于等于2000并小于3000,税率为
15%,如果工资大于等于3000,税率为20%。
/

SELECT sal ,
(CASE
WHEN sal<1000 THEN 0
WHEN sal<2000 THEN sal* 0.1
WHEN sal<3000 THEN sal0.15
ELSE sal
0.2 END
) pay
FROM emp;

DECODE的语法:DECODE(value,if1,then1,if2,then2,if3,then3,...,else),表示如果value 等于if1时,DECODE函数的结果返回then1,...,如果不等于任何一个if值,则返回else。初看一下, DECODE 只能做等于测试 ,但刚才也看到了,我们通过一些函数或计算替代value,是可以使DECODE函数具备大于、小于或等于功能。

oracle decode函数使用方法

你可能感兴趣的:(数据库case 和 decode 区别)