我有以下 XML 变量:
DECLARE @XML1 xml
SET @XML1 = '
<updates>
<a RowID="1" StatusTypeID="800" Name="Name800" />
<a RowID="2" StatusTypeID="700" Name="Name700" />
<a RowID="3" StatusTypeID="500" Name="Name500" />
</updates>'
我有将提取属性名称和值的 T-SQL 代码:
SELECT CAST(Attribute.Name.query('local-name(.)') AS varchar(100)) AS Attribute,
Attribute.Name.value('.', 'varchar(100)') AS Value
FROM @XML1.nodes('//@*') Attribute(Name)
这会产生:
Attribute Value
RowID 1
StatusTypeID 800
Name Name800
RowID 2
StatusTypeID 700
Name Name700
RowID 3
StatusTypeID 500
Name Name500
如何调整输出,以便将与每个节点关联的 RowID 添加为单独的列,即我想要的结果是:
Attribute Value RowID
RowID 1 1
StatusTypeID 800 1
Name Name800 1
RowID 2 2
StatusTypeID 700 2
Name Name700 2
RowID 3 3
StatusTypeID 500 3
Name Name500 3
希望有人可以提供帮助-谢谢。