程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> Oracle 函數用法之decode解剖

Oracle 函數用法之decode解剖

編輯:Oracle數據庫基礎

Oracle 函數用法之decode,DECODE函數將該數值與一系列的序偶相比較,以決定最後的返回結果 。序偶序偶,就是成對出現;我們將這個Oracle函數與switch比較,我們發現他們基本相似,唯一不同的是switch將要比較的值放在case後面都加上了break中。

以下一個例子:(我直接從網上找的)

  1. SELECT id,  
  2. DECODE(flag,’Y’,'Yes’,'N’,’No’,NULL,’None’,'Yes’)  
  3. FROM t_test;  

當t_test的flag字段為Y時返回Yes,為N時返回No,為NULL時返回None,默認返回Yes。

看看我遇到的問題:

  1. SELECT a.id,  
  2. a.user_name,  
  3. a.oper_time time2,  
  4. a.oper_type,  
  5. a.description,  
  6. a.oper_flag,  
  7. decode(a.oper_flag, '1', '成功', '失敗') oper_flag,  
  8. a.ip,  
  9. b.true_name  
  10. FROM SEC_LOG_OperaTION a  
  11. left join sec_user b on a.user_name = b.user_name  
  12. where 11 = 1  
  13. order by oper_time desc  

原來這紅線部分是: decode(a.oper_flag, 1, '成功', '失敗')

我在查詢的時候會報錯,原因是oper_flag這個字段數據中有非數字類型,也就是這個字段不僅有1、0,還有“失敗”,這樣數據!=字符。所以我們把1當字符處理就可以了。以上的相關內容就是對Oracle 函數用法之decode的介紹,望你能有所收獲。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved