昨天在pub问了个行列转换的问题,有大侠提出了解决办法,拷贝作来,做个记录吧。
实现了把其中两列分别与其他列进行组合,然后把一行数据转化成两行,转换后的数据量是现在的两倍。
[@more@]SQL> select empno, ename, job from emp where deptno = 10;
EMPNO ENAME JOB
---------- ---------- ---------
7782 CLARK MANAGER
7839 KING PRESIDENT
7934 MILLER CLERK
SQL> select b.empno, decode(a.rn,1,b.ename,b.job) info from
2 (select rownum rn from dual connect by rownum <= 2) a, emp b
3 where b.deptno = 10;
EMPNO INFO
---------- ----------
7782 CLARK
7782 MANAGER
7839 KING
7839 PRESIDENT
7934 MILLER
7934 CLERK
6 rows selected.
解决思路就是构造一个序列,然后做一个全连接,根据这个序列的值来判断进行取值。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25016/viewspace-908637/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/25016/viewspace-908637/