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
【编辑推荐】