如何使用Oracle的Decode函数进行多值判断
2007-09-23 13:10
507 查看
Decode函数的语法结构如下:
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
DBSNMP SYSTEM
SCOTT SYSTEM
OUTLN SYSTEM 2007-7-30 1
WMSYS SYSTEM 2007-7-30 1
ORDSYS SYSTEM 2007-7-30 1
ORDPLUGINS SYSTEM 2007-7-30 1
MDSYS SYSTEM 2007-7-30 1
CTXSYS DRSYS 2007-7-30 1
XDB XDB 2007-7-30 1
ANONYMOUS XDB 2007-7-30 1
WKSYS DRSYS 2007-7-30 1
WKPROXY DRSYS 2007-7-30 1
ODM ODM 2007-7-30 1
ODM_MTR ODM 2007-7-30 1
OLAPSYS CWMLITE 2007-7-30 1
RMAN TOOLS 2007-7-30 1
HR EXAMPLE 2007-7-30 1
OE EXAMPLE 2007-7-30 1
USERNAME DEFAULT_TABLESPACE LOCK_DATE
------------------------------ ------------------------------ -----------
PM EXAMPLE 2007-7-30 1
SH EXAMPLE 2007-7-30 1
QS_ADM EXAMPLE 2007-7-30 1
QS EXAMPLE 2007-7-30 1
QS_WS EXAMPLE 2007-7-30 1
QS_ES EXAMPLE 2007-7-30 1
QS_OS EXAMPLE 2007-7-30 1
QS_CBADM EXAMPLE 2007-7-30 1
QS_CB EXAMPLE 2007-7-30 1
QS_CS EXAMPLE 2007-7-30 1
30 rows selected
SQL> select username,decode(lock_date,null,'unlocked') status from t;
USERNAME STATUS
------------------------------ --------
SYS unlocked
SYSTEM unlocked
DBSNMP unlocked
SCOTT unlocked
OUTLN
WMSYS
ORDSYS
ORDPLUGINS
MDSYS
CTXSYS
XDB
ANONYMOUS
WKSYS
WKPROXY
ODM
ODM_MTR
OLAPSYS
RMAN
HR
OE
USERNAME STATUS
------------------------------ --------
PM
SH
QS_ADM
QS
QS_WS
QS_ES
QS_OS
QS_CBADM
QS_CB
QS_CS
30 rows selected
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函数的用法:
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
DBSNMP SYSTEM
SCOTT SYSTEM
OUTLN SYSTEM 2007-7-30 1
WMSYS SYSTEM 2007-7-30 1
ORDSYS SYSTEM 2007-7-30 1
ORDPLUGINS SYSTEM 2007-7-30 1
MDSYS SYSTEM 2007-7-30 1
CTXSYS DRSYS 2007-7-30 1
XDB XDB 2007-7-30 1
ANONYMOUS XDB 2007-7-30 1
WKSYS DRSYS 2007-7-30 1
WKPROXY DRSYS 2007-7-30 1
ODM ODM 2007-7-30 1
ODM_MTR ODM 2007-7-30 1
OLAPSYS CWMLITE 2007-7-30 1
RMAN TOOLS 2007-7-30 1
HR EXAMPLE 2007-7-30 1
OE EXAMPLE 2007-7-30 1
USERNAME DEFAULT_TABLESPACE LOCK_DATE
------------------------------ ------------------------------ -----------
PM EXAMPLE 2007-7-30 1
SH EXAMPLE 2007-7-30 1
QS_ADM EXAMPLE 2007-7-30 1
QS EXAMPLE 2007-7-30 1
QS_WS EXAMPLE 2007-7-30 1
QS_ES EXAMPLE 2007-7-30 1
QS_OS EXAMPLE 2007-7-30 1
QS_CBADM EXAMPLE 2007-7-30 1
QS_CB EXAMPLE 2007-7-30 1
QS_CS EXAMPLE 2007-7-30 1
30 rows selected
SQL> select username,decode(lock_date,null,'unlocked') status from t;
USERNAME STATUS
------------------------------ --------
SYS unlocked
SYSTEM unlocked
DBSNMP unlocked
SCOTT unlocked
OUTLN
WMSYS
ORDSYS
ORDPLUGINS
MDSYS
CTXSYS
XDB
ANONYMOUS
WKSYS
WKPROXY
ODM
ODM_MTR
OLAPSYS
RMAN
HR
OE
USERNAME STATUS
------------------------------ --------
PM
SH
QS_ADM
QS
QS_WS
QS_ES
QS_OS
QS_CBADM
QS_CB
QS_CS
30 rows selected
相关文章推荐
- 如何使用Oracle的Decode函数进行多值判断
- HowTo:如何使用Oracle的Decode函数进行多值判断
- 如何使用Oracle的Decode函数进行多值判断
- 使用Oracle的Decode函数进行多值判断
- 使用Oracle的Decode函数进行多值判断
- 如何使用oracle 的DBMS_SQLTUNE package 来运行 Sql Tuning Advisor 进行sql 自动调优
- 使用AFN 进行多次循环网络请求,如何判断何时请求完成
- 使用笔记:mysql与oracle进行sql查询时如何表示日期
- oracle 中如何在使用sum或其他聚合函数中,select查询条件处如何使用判断条件
- [Oracle分享]如何对一行结果为字符串的结果,进行大小判断。
- oracle的常用函数 instr() 和substr()函数 博客分类: oracle 在Oracle中 可以使用instr函数对某个字符串进行判断,判断其是否含有指定的字符。 在一个
- 保存时,使用JS进行非空判断时,如何获取单选按钮,选定的值?
- DEDE模板中如何使用if进行多分支判断
- 使用UAParser在C#MVC项目中如何判断用户是在用什么设备进行访问(手机,平板还是普通的电脑)
- 【ORACLE】异常关闭时ORACLE如何根据SCN对数据库进行一致性判断
- Oracle中使用PL/SQL如何定义参数、参数赋值、输出参数和 if 判断
- iOS开发工具-如何使用网络封包分析工具Charles,通过配置proxy对http、https、tcp、udp 等协议的请求响应过程交互信息进行分析、判断、解决我们移动开发中的遇到的各种实际问题。
- 如何使用ocilib进行oracle8的读取
- oracle中decode函数如何使用?
- 使用笔记:mysql与oracle进行sql查询时如何表示日期