您在Oracle 10g 中有一個包含鍵和值對的表,並且希望將其轉換為包含以下列的表每個唯一的鍵,每行都有對應的值。生成的表應動態調整以適應添加到原始表中的任何新鍵值對。
Oracle 11g 引入了PIVOT 操作,使您能夠執行此類動態透視:
select * from (select id, k, v from _kv) pivot(max(v) for k in ('name', 'age', 'gender', 'status'))
此查詢將建立一個動態透視表,其中包含IN 中指定的四個鍵中的每一個的列
Oracle 11g 還提供了一個透視XML 選項,讓您可以處理未知的列標題:
select * from (select id, k, v from _kv) pivot xml(max(v) for k in (any))
此查詢將產生XML 結果集合,其中每一列對應一個唯一鍵,關聯值儲存為XML元素的
以上是如何在 Oracle 中動態地將行轉換為列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!