我从外部来源获得以下XML:
<Op>
<Venc v110="100.01" v120="200.02"/>
</Op>
使用OPENXML,有没有一种方法可以查询上述xml,使输出看起来像这样?
AttributeName Value
v110 100.01
v120 200.02
理想的解决方案将是动态的,因为它可以有效地工作,而不必在代码中显式列出每个可能的属性名称。
另外,为了参考我希望实现的目标,这是使用@ XML.nodes的可行解决方案,可提供所需的结果:
declare @XML as xml
SET @XML = '<Op><Venc v110="100.01" v120="200.02"/></Op>'
SELECT
b.value('local-name(.)','VARCHAR(50)') AS AttributeName, -- get attribute name
b.value('.','decimal(20,2)') AS Value -- get attribute value
FROM @XML.nodes('Op/Venc') p(k)
CROSS APPLY k.nodes('@*') a(b)
谢谢。