欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2023-11-30 11:18:10
decode函数的语法结构如下: 复制代码 代码如下:decode (expression, search_1, result_1)decode (expression,...

decode函数的语法结构如下:

复制代码 代码如下:

decode (expression, search_1, result_1)
decode (expression, search_1, result_1, search_2, result_2)
decode (expression, search_1, result_1, search_2, result_2, ...., search_n, result_n)

decode (expression, search_1, result_1, default)
decode (expression, search_1, result_1, search_2, result_2, default)
decode (expression, search_1, result_1, search_2, result_2, ...., search_n, 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,decode(lock_date,null,"unlocked") status from t;

username                       status
------------------------------ --------
sys                            unlocked
system                         unlocked
outln                          unlocked
csmig                          unlocked
scott                          unlocked
eygle                          unlocked
dbsnmp                         unlocked
wmsys

8 rows selected.