[导读]如何使用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