首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

oracle列转行的有关问题

2013-04-20 
oracle列转行的问题编号 内容1 内容21aaaa11bbbb12azaz12sxsx1转成1aa aa1bbbb12azaz1 sxsx1[解决办法]WIT

oracle列转行的问题
编号 内容1 内容2
1    aa    aa1
1    bb    bb1
2    az    az1
2     sx    sx1

转成

1  aa aa1  bb  bb1
2  az  az1 sx  sx1
[解决办法]
WITH TEST AS (
SELECT '1' AS BH,'AA' AS NR1,'AA1' AS NR2 FROM DUAL
UNION
SELECT '1' AS BH,'BB' AS NR1,'BB1' AS NR2 FROM DUAL
UNION
SELECT '2' AS BH,'AZ' AS NR1,'AZ1' AS NR2 FROM DUAL
UNION
SELECT '2' AS BH,'SX' AS NR1,'SX1' AS NR2 FROM DUAL
)
SELECT BH,
       MAX(DECODE(ROWNO, 1, NR1, ' ')),
       MAX(DECODE(ROWNO, 1, NR2, ' ')),
       MAX(DECODE(ROWNO, 2, NR1, ' ')),
       MAX(DECODE(ROWNO, 2, NR2, ' '))
  FROM (SELECT ROW_NUMBER() OVER(PARTITION BY BH ORDER BY BH) AS ROWNO, BH,NR1,NR2
          FROM TEST)
 GROUP BY BH
[解决办法]
深奥  什么规律? 是固定的字符串和列?
[解决办法]
楼主说清楚点,aa aa1 bb bb1一个列的值还是四个列的值?

热点排行