使用Oracle的Decode函数进行多值判断

Decode函数的语法结构如下:


代码如下:decode (expression,search_1,result_1)
decode (expression,result_1,search_2,result_2)
decode (expression,result_2,....,search_n,result_n)


decode (expression,default)
decode (expression,result_n,default)


decode函数比较表达式和搜索字,如果匹配,返回结果;如果不匹配,返回default值;如果未定义default值,则返回空值。
以下是一个简单测试,用于说明Decode函数的用法:


代码如下:SQL> create table t as select username,default_tablespace,lock_date from dba_users;


Table created.


SQL> select * from t;


USERNAME DEFAULT_TABLESPACE LOCK_DATE
------------------------------ ------------------------------ ---------
SYS SYSTEM
SYSTEM SYSTEM
OUTLN SYSTEM
CSMIG SYSTEM
SCOTT SYSTEM
EYGLE USERS
DBSNMP SYSTEM
WMSYS SYSTEM 20-OCT-04


8 rows selected.



SQL> select username,decode(lock_date,null,"unlocked","locked") status from t;


USERNAME STATUS
------------------------------ --------
SYS unlocked
SYSTEM unlocked
OUTLN unlocked
CSMIG unlocked
SCOTT unlocked
EYGLE unlocked
DBSNMP unlocked
WMSYS locked


8 rows selected.


SQL> select username,"unlocked") status from t;


USERNAME STATUS
------------------------------ --------
SYS unlocked
SYSTEM unlocked
OUTLN unlocked
CSMIG unlocked
SCOTT unlocked
EYGLE unlocked
DBSNMP unlocked
WMSYS


8 rows selected.

dawei

【声明】:唐山站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。