eygle.com   eygle.com
eygle.com  
 

« Oracle HowTo:如何使用Oracle case函数 | Blog首页 | 回家纪事-之五 »

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

作者:eygle |【转载时请以超链接形式标明文章和作者信息及本声明
链接:
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.

By eygle on 2005-10-05 12:06 | Comments (3) | Posted to HowTo | Edit |

相关文章 随机文章
  • Oracle中的不可见字符处理案例一则
  • 如何判断一个字符串是否为数字或日期?
  • Oracle10g中SCN与TimeStamp的相互转换
  • 如何通过DB link进行远程过程或函数调用
  • 使用分析函数进行行列转换
  • 《深入浅出Oracle》排行榜再进一步
    关于版权的一点声明
    Oracle进程内存结构-如何察看Oracle进程消耗的内存
    一个小小的聚会-Itpub的朋友们
    使用Oracle10g Flashback database功能恢复用户错误
    搜索本站:

    留言 (3)

    谢谢

    Posted by: 1 at February 2, 2009 2:55 PM

    还好 不错

    Posted by: cloud at September 11, 2009 10:46 AM

    还好 不错

    Posted by: cloud at September 11, 2009 10:47 AM

    发表留言:



    Remember Me?
    (输入验证码后方可评论,谢谢支持)



    CopyRight © 2004~2010 eygle.com, All rights reserved.