2

同じIDごとに複数の行の値を列として返すことは可能ですか?

私のテーブルが次の場合:

ID     | Value  |Column_data
--------------------------------  
1      | a      |  DATA1
1      | b      |  DATA1
2      | c      |  DATA2 
2      | x      |  DATA2 
3      | y      |  DATA3 
3      | z      |  DATA3

(各 ID には常に 2 つの値があります)

選択は次を返す必要があります。

1,a,b,DATA1
2,c,x,DATA2
3,y,z,DATA3

4

4 に答える 4

1

またはlistagg(col2) over (...)11gで

于 2013-02-12T09:38:49.407 に答える
0

ピボットを使用できます。こちらをご覧ください。

http://www.oracle.com/technetwork/articles/sql/11g-pivot-097235.html

于 2013-02-12T09:34:08.957 に答える
0

次のようなことを試すことができます:

with t as ( select id, Column_data, xmlagg(xmlelement("e", Value)) xl 
from table1
group by id, Column_data)
select id, 
       extract(xl, 'e[1]/text()').getstringval() c1, 
       extract(xl, 'e[2]/text()').getstringval() c2, 
       Column_data
from t

ここにsqlfiddleのデモがあります

于 2013-02-12T10:10:20.100 に答える