2
転記(またはピボット)w/sqlは一般的な質問ですが、私はスタック/ googleで何をしようとしているのかを正確に知ることができませんでした。oracle転置列の値に基づいて
簡潔に言えば、これらの値は数多くあり、時間の経過とともに変化する可能性があるため、可能なすべての値をハードコーディングする必要はありません。例えば、
id col val
1 a 65
1 b 34
1 c 25
2 a 67
2 c 22
...
目標はなくときに、各異なるCOL十分COLの値は静的と小さい場合
簡単の列と、各個別IDのための単一の行に巻き取ることがありますcaseステートメントのすべての可能な句をハードコーディングするこのような値は数十もあります。擬似コードで
は、私は何をしたい
select
for each attr in (select distinct col from table)
sum(case when col = attr then val end) as transposed_attr,
end for
from table
group by id
ですが、私は、PL/SQLでの経験の浅いので、私は、Oracleでこれを達成する方法がわかりません。
アドバイス?
申し訳ありませんが、9iのを:11gは
Infactは、ちょうどPIVOTコマンドではなくを使用して、両方のためにここを見て...ピボットコマンドが導入されました。私はピボットを持っていません。 –
@justincress - postesdのリンクによれば、あなたはCASE/DECODEバージョンにいます。また、300行を300列に変換する必要がある場合は、300個のCASE/DECODE文が必要です。ごめんなさい。 – MatBailie