我有一个包含以下数据的表:
柱: 等级,类别,财产,价值
数据:
0,衣服,鞋子,耐克
0,衣服,鞋子2,阿迪达斯
0,衣服,鞋子3,FILA
0,衣服,帽子,汤姆1,运动衫,Dash1,红色
1,运动衫,Dash2,蓝色
我想生成一个包含每个级别数据的xml(迭代级别)。 这就是我所期待的:
<Root>
<Level>
<Clothes>
<Shoe1>Nike</Shoe1>
<Shoe2>Adidas</Shoe2>
<Shoe3>FILA</Shoe3>
</Clothes>
<Clothes>
<Hat>Tom</Hat>
</Clothes>
</Level>
<Level>
<Sweatshirt>
<Dash1>Red</Dash1>
<Dash2>Blue</Dash2>
</Sweatshirt>
</Level>
</Root>
答案 0 :(得分:0)
尝试使用dbms_xmlgen
select dbms_xmlgen.getxml('your query') from dual;
您可以使用游标迭代每个项目
答案 1 :(得分:0)
你可以尝试做这样的事情
select
cast(
'<' + T.Class + '>' +
cast(
(
select
cast('<' + TT.Property + '>' + TT.Value + '</' + TT.Property + '>' as xml)
from #MyTable as TT
where TT.Level = T.Level and TT.Class = T.Class
for xml path('')
)
as nvarchar(max)) +
'</' + T.Class + '>'
as xml) as [Level]
from (select distinct TT.Level, TT.Class from #MyTable as TT) as T
for xml path(''), root('Root'), type
<强> sql fiddle demo 强>
不是我真的喜欢这种解决方案。您也可以尝试动态SQL