导航

    <#CACHE_INCLUDE_NAVBAR#>
« killtest 最新的 TB0-115 考古題oracle中process和session的關系 »

學習oracle-oracle 函數用法之decode

2011年1月13日 Oracle 0条评论 0个引用

oracle數據庫:

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

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

  SELECT id,

  DECODE(flag,’Y’,'Yes’,'N’,’No’,NULL,’None’,'Yes’)

  FROM t_test;

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

  看看我遇到的問題:

  SELECT a.id,

  a.user_name,

  a.oper_time time2,

  a.oper_type,

  a.description,

  a.oper_flag,

  decode(a.oper_flag, '1', '成功', '失敗') oper_flag,

  a.ip,

  b.true_name

  FROM SEC_LOG_OPERATION a

  left join sec_user b on a.user_name = b.user_name

  where 1 = 1

  order by oper_time desc

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

  我在查詢的時候會報錯,原因是oper_flag這個字段數據中有非數字類型,也就是這個字段不僅有1、0,還有“失敗”,這樣數據!=字符。所以我們把1當字符處理就可以了。

 

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最近发表

Powered By Z-Blog 1.8 Arwen Build 81206