Oracle旋轉insert語句可能對於很多剛接觸Oracle的新人來說還比較陌生,下面就為您詳細介紹Oracle旋轉insert語句的實現方法,供您參考。
Oracle多表insert語句中還可以實現旋轉Oracleinsert語句.即把表原來每行數據不同列值轉換為另一種表的不同行值.
如:
create table 銷售表(
id number primary key,
JAN number,
FEB number,
MAR number,
APR number
)
SQL> insert into 銷售表 values(1,100,200,300,400);
1 row created.
SQL> insert into 銷售表 values(2,110,120,130,140);
1 row created.
SQL> select * from 銷售表;
ID JAN FEB MAR APR
---------- ---------- ---------- ---------- ----------
1 100 200 300 400
2 110 120 130 140
create table 月銷售統計表
(編號 numeric,
月份 nvarchar2(10),
月平均銷售額 numeric,
月銷售額 numeric
);
旋轉insert語句:
SQL> insert all
2 into 月銷售統計表 values(1,'一月',avg1,sum1)
3 into 月銷售統計表 values(2,'二月',avg2,sum2)
4 into 月銷售統計表 values(3,'三月',avg3,sum3)
5 into 月銷售統計表 values(4,'四月',avg4,sum4)
6 select avg(JAN) avg1,sum(JAN) sum1,
7 avg(FEB) avg2,sum(FEB) sum2,
8 avg(MAR) avg3,sum(MAR) sum3,
9 avg(APR) avg4,sum(APR) sum4
10 from 銷售表;
4 rows created.
SQL> select * from 月銷售統計表;
編號 月份 月平均銷售額 月銷售額
---------- -------------------- ------------ ----------
1 一月 105 210
2 二月 160 320
3 三月 215 430
4 四月 270 540
源數據如下:
ID JAN FEB MAR APR
---------- ---------- ---------- ---------- ----------
1 100 200 300 400
2 110 120 130 140