oracle decode一个值对应多个值,如何使用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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值