Decode的用法,多值判斷

Decode函數的語法結構如下: 


Sql代碼  收藏代碼
  1. decode (expression, search_1, result_1)  
  2. decode (expression, search_1, result_1, search_2, result_2)  
  3. decode (expression, search_1, result_1, search_2, result_2, ...., search_n, result_n)  
  4.   
  5. decode (expression, search_1, result_1, default)  
  6. decode (expression, search_1, result_1, search_2, result_2, default)  
  7. decode (expression, search_1, result_1, search_2, result_2, ...., search_n, result_n, default)  


decode函數比較表達式和搜索字,如果匹配,返回結果;如果不匹配,返回default值;如果未定義default值,則返回空值。 
以下是一個簡單測試,用於說明Decode函數的用法: 

Sql代碼  收藏代碼
  1. SQL> create table t as select username,default_tablespace,lock_date from dba_users;  
  2.   
  3. Table created.  
  4.   
  5. SQL> select * from t;  
  6.   
  7. USERNAME                       DEFAULT_TABLESPACE             LOCK_DATE  
  8. ------------------------------ ------------------------------ ---------  
  9. SYS                            SYSTEM  
  10. SYSTEM                         SYSTEM  
  11. OUTLN                          SYSTEM  
  12. CSMIG                          SYSTEM  
  13. SCOTT                          SYSTEM  
  14. EYGLE                          USERS  
  15. DBSNMP                         SYSTEM  
  16. WMSYS                          SYSTEM                         20-OCT-04  
  17.   
  18. rows selected.  
  19.   
  20.   
  21. SQL> select username,decode(lock_date,null,'unlocked','locked') status from t;  
  22.   
  23. USERNAME                       STATUS  
  24. ------------------------------ --------  
  25. SYS                            unlocked  
  26. SYSTEM                         unlocked  
  27. OUTLN                          unlocked  
  28. CSMIG                          unlocked  
  29. SCOTT                          unlocked  
  30. EYGLE                          unlocked  
  31. DBSNMP                         unlocked  
  32. WMSYS                          locked  
  33.   
  34. rows selected.  
  35.   
  36. SQL> select username,decode(lock_date,null,'unlocked') status from t;  
  37.   
  38. USERNAME                       STATUS  
  39. ------------------------------ --------  
  40. SYS                            unlocked  
  41. SYSTEM                         unlocked  
  42. OUTLN                          unlocked  
  43. CSMIG                          unlocked  
  44. SCOTT                          unlocked  
  45. EYGLE                          unlocked  
  46. DBSNMP                         unlocked  
  47. WMSYS  
  48.   
  49. rows selected.  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章