XML看起来像这样:
<Attributes>
<ProductAttribute ID="92">
<ProductAttributeValue>
<Value>225</Value>
</ProductAttributeValue>
</ProductAttribute>
<ProductAttribute ID="536">
<ProductAttributeValue>
<Value>227</Value>
</ProductAttributeValue>
</ProductAttribute>
我需要
ID - Value
92 - 225
536 - 227
表格式。
是否可以直接从查询或存储过程或函数中获取此值?
答案 0 :(得分:0)
您可以对{xml
使用value()和nodes方法DECLARE @xml XML = N'<Attributes>
<ProductAttribute ID="92">
<ProductAttributeValue>
<Value>225</Value>
</ProductAttributeValue>
</ProductAttribute>
<ProductAttribute ID="536">
<ProductAttributeValue>
<Value>227</Value>
</ProductAttributeValue>
</ProductAttribute>
</Attributes>'
SELECT ID = x.t.value('(./@ID)[1]','int'),
Value = x.t.value('(./ProductAttributeValue/Value)[1]','int')
FROM @xml.nodes('/Attributes/ProductAttribute') AS x(t)
返回
ID Value
---------
92 225
536 227