如何使用Oracle中的列将行转换为单行

时间:2014-01-10 01:44:43

标签: sql oracle

你好。 我正在开发一个将行转换为单行的SQL。

例如,

select key, value from AAA;

它可能带来结果:

==================
Key     |    Value
==================
A1      | P1
A2      | P3
...     | ...
An      | Pn

但是,我想把它变成下面的

=======================================================
C1  |  C2  |  C3  |  C4  | ... | ... |  Cn*2-1  | Cn*2
=======================================================
A1  |  P1  |  A2  |  P2  | ... | ... |  An      | Pn

* C1,C2 ......是列名。

你有什么闪亮的想法吗?

1 个答案:

答案 0 :(得分:0)

不确定你的C1 ...... Cn来自哪里。此示例涵盖另一部分:A1 P1 ...:

 SELECT LISTAGG(single_row, ' | ') WITHIN GROUP (ORDER BY single_row) AS final_val
  FROM
  (
   SELECT Keys||' '||Val single_row
     FROM
  (
   SELECT 'A1'  Keys, 'P1' Val FROM dual
    UNION ALL
   SELECT 'A2', 'P3' FROM dual
    UNION ALL
   SELECT 'A3', 'P4' FROM dual
  )
 )
/

Output:
A1 P1 | A2 P3 | A3 P4