1、Windows NT4.0+ORACLE 8.0.4
  2、ORACLE安装路径为:C:\ORANT
  含义解释: 
  DECODE(条件,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值)
  该函数的含义如下:
  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()函数根据某个值是0、正数还是负数,分别返回0、1、-1
  例如:
  变量1=10,变量2=20
  则sign(变量1-变量2)返回-1,decode解码结果为“变量1”,达到了取较小值的目的。
  2、表、视图结构转化
  现有一个商品销售表sale,表结构为:
  month
  char(6)
  --月份
  sell
  number(10,2)
  --月销售金额
  现有数据为:
  200001
  1000
  200002
  1100
  200003
  1200
  200004
  1300
  200005
  1400
  200006
  1500
  200007
  1600
  200101
  1100
  200202
  1200
  200301
  1300
  想要转化为以下结构的数据:
  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月销售金额
  结构转化的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);