日期:2014-05-17 浏览次数:20806 次
insert into newSalaryTable
(empno, name, salary, month)
select empno, name, salary, month
from (select empno, name, Salary1 salary, '1月' month
from salaryTable
union all
select empno, name, Salary2 salary, '2月' month
from salaryTable
union all
select empno, name, Salary3 salary, '3月' month
from salaryTable
union all
select empno, name, Salary4 salary, '4月' month
from salaryTable
union all
select empno, name, Salary5 salary, '5月' month
from salaryTable
union all
select empno, name, Salary6 salary, '6月' month
from salaryTable
union all
select empno, name, Salary7 salary, '7月' month
from salaryTable
union all
select empno, name, Salary8 salary, '8月' month
from salaryTable
union all
select empno, name, Salary9 salary, '9月' month
from salaryTable
union all
select empno, name, Salary10 salary, '10月' month
from salaryTable
union all
select empno, name, Salary11 salary, '11月' month
from salaryTable
union all
select empno, name, Salary12 salary, '12月' month from salaryTable);
SQL> WITH TEST AS( 2 SELECT 'A001' AS empno,'SUN' AS name ,100 Salary1,200 Salary2,300 Salary3,400 Salary4 3 ,500 Salary5,600 Salary6,700 Salary7,800 Salary8,900 Salary9,1000 Salary10,1100 Salary11,1200 Salary12 4 FROM DUAL UNION 5 SELECT 'A002','RAIN',1200,1100,1000,900,800,700,600,500,400,300,200,100 FROM DUAL 6 ) 7 SELECT EMPNO,NAME,1 AS MONTH,SALARY1 AS SALARY FROM TEST 8 UNION ALL 9 SELECT EMPNO,NAME,2 AS MONTH,SALARY2 AS SALARY FROM TEST 10 UNION ALL 11 SELECT EMPNO,NAME,3 AS MONTH,SALARY3 AS SALARY FROM TEST 12 UNION ALL 13 SELECT EMPNO,NAME,4 AS MONTH,SALARY4 AS SALARY FROM TEST 14 UNION ALL 15 SELECT EMPNO,NAME,5 AS MONTH,SALARY5 AS SALARY FROM TEST 16 UNION ALL 17 SELECT EMPNO,NAME,6 AS MONTH,SALARY6 AS SALARY FROM TEST 18 UNION ALL 19 SELECT EMPNO,NAME,7 AS MONTH,SALARY7 AS SALARY FROM TEST 20 UNION ALL 21 SELECT EMPNO,NAME,8 AS MONTH,SALARY8 AS SALARY FROM TEST 22 UNION ALL 23 SELECT EMPNO,NAME,9 AS MONTH,SALARY9 AS SALARY FROM TEST 24 UNION ALL 25 SELECT EMPNO,NAME,10 AS MONTH,SALARY10 AS SALARY FROM TEST 26 UNION ALL 27 SELECT EMPNO,NAME,11 AS MONTH,SALARY11 AS SALARY FROM TEST 28 UNION ALL 29 SELECT EMPNO,NAME,12 AS MONTH,SALARY12 AS SALARY FROM TEST; EMPNO NAME MONTH SALARY ----- ---- ---------- ---------- A001 SUN 1