У меня есть следующий 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)
Заранее спасибо.