当前位置: 代码迷 >> Oracle管理 >> 请教怎么把这纵向的数据转成横向呀
  详细解决方案

请教怎么把这纵向的数据转成横向呀

热度:172   发布时间:2016-04-24 06:17:48.0
请问如何把这纵向的数据转成横向呀?
有表TBL字段id,classid,a,b,c,如何根据classid转成下面的数据
原来:


期望:


请帮忙啦,我这里只列举了一行数据。

------解决方案--------------------
看不到图,贴个昨天写的比较蛋疼的SQL给你参考
SQL code
SELECT     LEVEL,           REGEXP_SUBSTR                     ('first,second,third',                      '[^,]*',                        NVL (REGEXP_INSTR ('first,second,third',                                           ',',                                           1,                                           DECODE (LEVEL - 1,                                                   0, NULL,                                                   LEVEL - 1                                                  )                                          ),                             0                            )                      + 1                     ) split_result      FROM DUALCONNECT BY NVL (REGEXP_INSTR ('first,second,third',                              ',',                              1,                              DECODE (LEVEL - 1, 0, NULL, LEVEL - 1)                             ),                1               ) > 0
------解决方案--------------------
SQL code
with tb1 as(select 61520528 id,12 classid,0 a,0 b,0 c from dual union allselect 61520528 id,13 classid,0 a,0 b,0 c from dual union allselect 61520528 id,14 classid,1 a,1 b,5 c from dual)select id,       max(decode(classid,12,a,0)) a12,max(decode(classid,12,b,0)) b12,max(decode(classid,12,c,0)) c12,       max(decode(classid,13,a,0)) a13,max(decode(classid,13,b,0)) b13,max(decode(classid,13,c,0)) c13,       max(decode(classid,14,a,0)) a14,max(decode(classid,14,b,0)) b14,max(decode(classid,14,c,0)) c14 from tb1group by id;         ID        A12        B12        C12        A13        B13        C13        A14        B14        C14---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------  61520528          0          0          0          0          0          0          1          1          5
  相关解决方案