【发布时间】:2014-11-21 20:11:37
【问题描述】:
假设我有一个这样的数据集:
|Group|Value|
|-----|-----|
| A | 123 |
|-----|-----|
| A | 234 |
|-----|-----|
| B | 123 |
|-----|-----|
并希望像这样将其转换为 XML:
<Groups>
<Group Name="A">
<Values>
<Value>123</Value>
<Value>234</Value>
</Values>
</Group>
<Group Name="B">
<Values>
<Value>123</Value>
</Values>
</Group>
</Groups>
我尝试过使用类似的东西:
SELECT
[Group] AS "@Name"
,[Value] AS "Group/Values/Value"
FROM [Tablename]
FOR XML PATH('Group'), ROOT('Groups')
但我得到的是:
<Groups>
<Group Name="A">
<Values>
<Value>123</Value>
</Values>
</Group>
<Group Name="A">
<Values>
<Value>234</Value>
</Values>
</Group>
<Group Name="B">
<Values>
<Value>123</Value>
</Values>
</Group>
</Groups>
如何根据第一列的数据组合这些节点?
【问题讨论】:
-
你需要按组名分组
-
添加 GROUP BY [Group], [Value] 没有做任何事情。
标签: sql xml sql-server-2012