当前位置: 代码迷 >> Oracle管理 >> 多列转一列,该如何处理
  详细解决方案

多列转一列,该如何处理

热度:72   发布时间:2016-04-24 04:18:20.0
多列转一列
表1
 A    D1     D2      D3      D4
aa    1        2        3          4
bb    1        2        3          4

结果:
aa    1
aa    2
aa    3
aa    4
bb    1
bb    2
bb    3
bb    4
------解决方案--------------------
引用:
表1
 A    D1     D2      D3      D4
aa    1        2        3          4
bb    1        2        3          4

结果:
aa    1
aa    2
aa    3
aa    4
bb    1
bb    2
bb    3
bb    4


动态的有点难度,静态的入下:

 with t as
  (select 'aa' a, 1 d1, 2 d2
     from dual
   union all
   select 'bb' a, 1 d1, 2 d2
     from dual)
 select a,d1 from t
 union all
  select a,d2 from t order by a,d1;

------解决方案--------------------
建议楼主用以下类似的语句
SELECT t.empno,t.ename FROM emp t
UNION ALL
SELECT t.empno,t.job FROM emp t

有多少列,就写多少。
------解决方案--------------------
动态的话外部程序实现吧。
------解决方案--------------------
引用:
动态的话外部程序实现吧。

作为程序员,觉得用程序节约一些东西比用plsql解决简单多了。反正又不是很讲究效率的东西,达到目的就行了。
  相关解决方案