Oracle DECODE函数的用法详解

DECODE 中的if-then-else逻辑

在逻辑编程中,常常用到If – Then –Else 进行逻辑判断。在DECODE的语法中,实际上就是这样的逻辑处理过程。它的语法以下:
DECODE(value, if1, then1, if2,then2, if3,then3, . . . else )
Value 表明某个表的任何类型的任意列或一个经过计算所得的任何结果。当每一个value值被测试,若是value的值为if1,Decode 函数的结果是then1;若是value等于if2,Decode函数结果是then2;等等。事实上,能够给出多个if/then 配对。若是value结果不等于给出的任何配对时,Decode 结果就返回else 。
须要注意的是,这里的if、then及else 均可以是函数或计算表达式。

DECODE 的简单例子

Oracle系统中就有许多 数据字典是使用decode 思想设计的,好比记录会话信息的V$SESSION数据字典视图就是这样。咱们从《Oracle8i/9i Reference》资料中了解到,当用户登陆成功后在V$SESSION中就有该用户的相应记录,但用户所进行的命令操做在该视图中只记录命令的代码(0—没有任何操做,2—Insert…),而不是具体的命令关键字。所以,咱们须要了解当前各个用户的名字及他们所进行的操做时,要用下面命令才能获得详细的结果:
select sid,serial#,username,
DECODE(command,
0,’None’,
2,’Insert’,
3,’Select’,
6,’Update’,
7,’Delete’,
8,’Drop’,
‘Other’) command
from v$session where username is not null;
例子2:
DECODE(VALUE,'0','1','2')
若value为0,则为1,不然为2
相关文章
相关标签/搜索