使用Oracle的Decode函数进行多值判断
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.
免责声明:本站所有文章和图片均来自用户分享和网络收集,文章和图片版权归原作者及原出处所有,仅供学习与参考,请勿用于商业用途,如果损害了您的权利,请联系网站客服处理。
新手学oracle常见疑问2019-12-05
oracle远程连接服务器出现 ORA-12170 TNS:连接超时 解2019-01-22
oracle case when 语句的用法详解2019-02-07
ORACLE性能优化之SQL语句优化2021-03-10
oracle中使用group by优化distinct2019-12-05
ORACLE 10g 安装教程[图文]2019-01-21
ORA-00947:Not enough values (没有足够的值)的深入分2019-01-22
Oracle显示游标的使用及游标for循环2019-03-01
Oracle 查看表空间的大小及使用情况sql语句2019-01-22
ORA-12514及ORA-28547错误解决方案2019-01-23