【发布时间】:2015-02-04 16:09:30
【问题描述】:
我有一个包含名称-值对的表。我想将名称值对序列化为一个 xml 结构,每个名称值对都有一个元素,[Name] 列作为 xml 元素名称,[Value] 列作为 XML 节点的内容。
例如给定以下示例数据...
;with nvp (Name, Value) as
(
select 'Food', 'Tacos' union all
select 'Height', '5''9"' union all
select 'Value', '3.141'
)
select *
from nvp
我想要一个如下所示的 xml 块:
<root>
<Food>Tacos</Food>
<Height>5'9"</Height>
<Value>3.141</Value>
</root>
当我尝试 FOR XML PATH 时,我得到了类似下面的东西,这不是我想要的。
<root>
<Name>Food</Name>
<Value>Tacos</Value>
</root>
<root>
<Name>Height</Name>
<Value>5'9"</Value>
</root>
<root>
<Name>Value</Name>
<Value>3.141</Value>
</root>
有人知道怎么做吗?
【问题讨论】:
标签: sql-server xml sql-server-2008 tsql xpath