我正在尝试在T-SQL中执行xml文件 这是我的表:
|Name| Rank|
|Rob | 1 |
|Matt| 1 |
|Leo | 2 |
|jin | 2 |
|jo | 3 |
到目前为止,我的代码是:
select name, rank from Info order by rank for xml raw ('Data'), ROOT, ELEMENTS
我得到的结果是:
<root>
<data>
<rank>1<rank>
<name>Rob</name>
</data>
<data>
<rank>1<rank>
<name>Matt</name>
</data>
...
我希望得到这个结果:
<data>
<rank id=1>
<name>Rob</name>
<name>Matt</name>
</rank>
<rank id=2>
<name>Leo</name>
<name>jin</name>
</rank>
<rank id = 3>
<name>jo</name>
</rank>
</data>
你知道我怎么能这样吗? 感谢
答案 0 :(得分:2)
按排序分组并查询相关子查询中每个Rank的名称值。
select I1.rank as 'rank/@id',
(
select I2.name
from Info as I2
where I1.rank = I2.rank
for xml path(''), type
) as rank
from Info as I1
group by I1.rank
for xml path('data')