2
私は重複行を維持しながら、同じ幅の長いテーブルに値を戻す必要があります。複数行ピボットOracle 11gの
IE:私のテーブル:私が欲しいもの
Colname | ColValue | PK
Field1 | 12 | 1
Field2 | apple | 1
Field3 | blue | 1
Field3 | Red | 1
:
PK | Field1| Field2 | Field3
1 |12 | apple |blue
1 |12 | apple |red
どのようにmax(colvalue)を実行し、次に2番目のField 3値を削除するかについて、この状況でピボット作業を行う方法を理解できないようです。フィールド/列の名前を必ずしも知っているわけではないので、動的な列のソリューションはすばらしいでしょう。私は、この表にタイムスタンプ列と他の「ランダム」の列を持っています
PK | Field1| Field2 | Field3
1 |12 | apple |blue
:
select PK as CompPK,
ColName,
Colvalue
from test1)
Pivot(
max(colvalue) for ColNamein ('Field1' as Field1,'Field2' as Field2,'Field3' as Field3)
もちろん、この戻りちょうど:私は何を持っている
。
編集:
はい。理論的にはすべての可能な反復が欲しい。
を試してみて何が複数の 'field2'の値を持っている場合は? –
同じpkの場合、field1に3つの値がある場合、field2には4つの値があり、field3には5つの値がありますか?これらの値のすべての組み合わせ(3 * 4 * 5 = 60行)を取得しますか? – krokodilko