gpt4 book ai didi

sql - 在 pivot xml 之后将 xmltype 解析为表

转载 作者:行者123 更新时间:2023-12-04 04:20:47 25 4
gpt4 key购买 nike

我在 pivot xml 之后返回了 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>

我需要得到看起来像的表格

Ukraine_population|Germany_population|...

12345 |67891 |...

最佳答案

您可以使用此 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

但如果您想要每个国家/地区的列,您仍然需要从这里透视数据以获得结果!

这引出了一个问题:

为什么要使用 XML 数据透视表?

如果是因为您不知道国家名称而正在做类似的事情:

pivot xml ( 
min ( population )
for country in ( any )
)

这并没有为您节省任何东西!您仍然需要知道国家/地区名称才能将输出作为列。

关于sql - 在 pivot xml 之后将 xmltype 解析为表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59422116/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com