数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

Oracle中Decode()函数使用技巧


发布日期:2019年12月15日
 
Oracle中Decode()函数使用技巧

DECODE函数是ORACLE PL/SQL是功能强大的函数之一目前还只有ORACLE公司的SQL提供了此函数其他数据库厂商的SQL实现还没有此功能DECODE有什么用途呢?先构造一个例子假设我们想给智星职员加工资其标准是工资在元以下的将加工资在元以上的加通常的做法是先选出记录中的工资字段值? select salary into varsalary from employee然后对变量varsalary用ifthenelse或choose case之类的流控制语句进行判断如果用DECODE函数那么我们就可以把这些流控制语句省略通过SQL语句就可以直接完成如下

select decode(sign(salary salary*salary*salary) from employee是不是很简洁?

DECODE的语法DECODE(valueifthenifthenifthen……else)表示如果value 等于ifDECODE函数的结果返回then……如果不等于任何一个if值则返回else初看一下DECODE 只能做等于测试但刚才也看到了我们通过一些函数或计算替代value是可以使DECODE函数具备大于小于或等于功能

decode()函数使用技巧

decode(条件翻译值翻译值……值n翻译值n缺省值)

该函数的含义如下

IF 条件=值 THEN RETURN(翻译值

ELSIF 条件=值 THEN RETURN(翻译值

……

ELSIF 条件=值n THEN RETURN(翻译值n)

ELSE RETURN(缺省值)

END IF

使用方法

比较大小select decode(sign(变量变量变量变量) from dual ——取较小值sign()函数根据某个值是正数还是负数分别返回

例如变量=变量=则sign(变量变量)返回decode解码结果为变量达到了取较小值的目的

上一篇:Oracle中通过命令行实现定时操作详解

下一篇:OracleDataConvertion简单方法