次のXPath式を使用して国の値を取得できます:
/PivotSet/item/column[@name="country"]
そして、人口のための同様のもの。与える:
with x as (
select xmltype (
'<PivotSet>
<item>
<column name = "country">Ukraine</column>
<column name = "population">12345</column>
</item>
<item>
<column name = "country">Germany</column>
<column name = "population">67891</column>
</item>
</PivotSet>'
) x from dual
)
select xt.* from x, xmltable (
'/PivotSet/item'
passing x.x
columns
country varchar2(100)
path 'column[@name="country"]',
population int
path 'column[@name="population"]'
) xt
COUNTRY POPULATION
Ukraine 12345
Germany 67891
ただし、国ごとに列が必要な場合は、ここからpivot
する必要があります。 結果を得るためのデータ!
論点先取:
XMLピボットを使用する理由
国名がわからず、次のようなことをしていることが原因の場合:
pivot xml (
min ( population )
for country in ( any )
)
これはあなたに何も救いませんでした!列として出力を取得するには、国名を知っている必要があります。