国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > Oracle > 正文

oracle中Decode()函數(shù)使用技巧的說明

2024-08-29 13:42:19
字體:
供稿:網(wǎng)友
軟件環(huán)境:
  1、Windows NT4.0+Oracle 8.0.4
  2、ORACLE安裝路徑為:C:/ORANT
  
  含義解釋:
  DECODE(條件,值1,翻譯值1,值2,翻譯值2,...值n,翻譯值n,缺省值)
  
  該函數(shù)的含義如下:
  IF 條件=值1 THEN
      RETURN(翻譯值1)
  ELSIF 條件=值2 THEN
      RETURN(翻譯值2)
      ......
  ELSIF 條件=值n THEN
      RETURN(翻譯值n)
  
  ELSE
      RETURN(缺省值)
  END IF
  
  使用方法:
  1、比較大小
  select decode(sign(變量1-變量2),-1,變量1,變量2) from dual; --取較小值
  sign()函數(shù)根據(jù)某個值是0、正數(shù)還是負數(shù),分別返回0、1、-1
  
  例如:
  變量1=10,變量2=20
  則sign(變量1-變量2)返回-1,decode解碼結(jié)果為“變量1”,達到了取較小值的目的。
  
  
  2、表、視圖結(jié)構(gòu)轉(zhuǎn)化
  現(xiàn)有一個商品銷售表sale,表結(jié)構(gòu)為:
  month    char(6)      --月份
  sell    number(10,2)   --月銷售金額
  
  現(xiàn)有數(shù)據(jù)為:
  200001  1000
  200002  1100
  200003  1200
  200004  1300
  200005  1400
  200006  1500
  200007  1600
  200101  1100
  200202  1200
  200301  1300
  
  想要轉(zhuǎn)化為以下結(jié)構(gòu)的數(shù)據(jù):
  year   char(4)      --年份
  month1  number(10,2)   --1月銷售金額
  month2  number(10,2)   --2月銷售金額
  month3  number(10,2)   --3月銷售金額
  month4  number(10,2)   --4月銷售金額
  month5  number(10,2)   --5月銷售金額
  month6  number(10,2)   --6月銷售金額
  month7  number(10,2)   --7月銷售金額
  month8  number(10,2)   --8月銷售金額
  month9  number(10,2)   --9月銷售金額
  month10  number(10,2)   --10月銷售金額
  month11  number(10,2)   --11月銷售金額
  month12  number(10,2)   --12月銷售金額
  
  結(jié)構(gòu)轉(zhuǎn)化的SQL語句為:
  create or replace view v_sale(year,month1,month2,month3,
  month4,month5,month6,month7,month8,month9,month10,month11,month12)
  as
      select
      substrb(month,1,4),
      sum(decode(substrb(month,5,2),'01',sell,0)),
      sum(decode(substrb(month,5,2),'02',sell,0)),
      sum(decode(substrb(month,5,2),'03',sell,0)),
      sum(decode(substrb(month,5,2),'04',sell,0)),
      sum(decode(substrb(month,5,2),'05',sell,0)),
      sum(decode(substrb(month,5,2),'06',sell,0)),
      sum(decode(substrb(month,5,2),'07',sell,0)),
      sum(decode(substrb(month,5,2),'08',sell,0)),
      sum(decode(substrb(month,5,2),'09',sell,0)),
      sum(decode(substrb(month,5,2),'10',sell,0)),
      sum(decode(substrb(month,5,2),'11',sell,0)),
      sum(decode(substrb(month,5,2),'12',sell,0))
      from sale
      group by substrb(month,1,4);
     

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 阳山县| 竹山县| 伊宁县| 赤水市| 天等县| 锡林郭勒盟| 平乡县| 扎鲁特旗| 绵竹市| 吐鲁番市| 林西县| 梨树县| 桃源县| 卫辉市| 呼和浩特市| 鲁甸县| 玉龙| 吴川市| 博爱县| 霍城县| 富平县| 沂南县| 永吉县| 永丰县| 宜宾市| 昂仁县| 民乐县| 通道| 秦皇岛市| 永丰县| 赣榆县| 宜黄县| 丘北县| 洪湖市| 兴化市| 昭苏县| 班玛县| 太原市| 锡林郭勒盟| 安平县| 米泉市|