首页 > 数据库 > Oracle > 正文

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

2024-08-29 13:42:26
字体:
来源:转载
供稿:网友
 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.

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表