使用一个表在T-SQL中创建XML

时间:2014-01-09 07:40:10

标签: xml tsql

我正在尝试在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>

你知道我怎么能这样吗? 感谢

1 个答案:

答案 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')