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

王朝oracle·作者佚名  2008-05-19
宽屏版  字体: |||超大  

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.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有