熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

Decode()函數

2013-11-13 22:15:06  來源: Oracle 

  ·含義解釋
  
  decode(條件翻譯值翻譯值值n翻譯值n缺省值)
  
  該函數的含義如下
  
  IF 條件=值 THEN
  RETURN(翻譯值)
  ELSIF 條件=值 THEN
  RETURN(翻譯值)
  
  ELSIF 條件=值n THEN
  RETURN(翻譯值n)
  
  ELSE
  RETURN(缺省值)
  END IF
  
  ·使用方法
  
  比較大小
  
  select decode(sign(變量變量)變量變量) from dual; 取較小值
  sign()函數根據某個值是正數還是負數分別返回
  
  例如
  變量=變量=
  則sign(變量變量)返回decode解碼結果為變量達到了取較小值的目的
  
  視圖結構轉化
  
  現有一個商品銷售表sale表結構為
  
  month    char()      月份
  sell    number()   月銷售金額
  
  現有數據為
  
    
    
    
    
    
    
    
    
    
    
  
  想要轉化為以下結構的數據
  
  year   char()      年份
  month  number()   月銷售金額
  month  number()   月銷售金額
  month  number()   月銷售金額
  month  number()   月銷售金額
  month  number()   月銷售金額
  month  number()   月銷售金額
  month  number()   月銷售金額
  month  number()   月銷售金額
  month  number()   月銷售金額
  month  number()   月銷售金額
  month  number()   月銷售金額
  month  number()   月銷售金額
  
  結構轉化的SQL語句為
  
  create or replace view
  v_sale(yearmonthmonthmonthmonthmonthmonth
  
  monthmonthmonthmonthmonthmonth)
  as
  select
  substrb(month)
  sum(decode(substrb(month)sell))
  sum(decode(substrb(month)sell))
  sum(decode(substrb(month)sell))
  sum(decode(substrb(month)sell))
  sum(decode(substrb(month)sell))
  sum(decode(substrb(month)sell))
  sum(decode(substrb(month)sell))
  sum(decode(substrb(month)sell))
  sum(decode(substrb(month)sell))
  sum(decode(substrb(month)sell))
  sum(decode(substrb(month)sell))
  sum(decode(substrb(month)sell))
  from sale
  group by substrb(month);
From:http://tw.wingwit.com/Article/program/Oracle/201311/18599.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.