我有一个XML对象。我想使用T-SQL将其反序列化为一个表。
<Params>
<type = 1>
<value> 10 </value>
</type>
<type = 2>
<value> abc </value>
</type>
</Params>
如何将此数据存储到如下表格中:
谢谢!
答案 0 :(得分:11)
你的XML无效 - 但如果你有这样的东西:
<Params>
<type ID="1">
<value> 10 </value>
</type>
<type ID="2">
<value> abc </value>
</type>
</Params>
然后您可以使用此XQuery / SQL语句来获取您正在寻找的内容:
DECLARE @XML XML = '<Params>
<type ID="1">
<value> 10 </value>
</type>
<type ID="2">
<value> abc </value>
</type>
</Params>'
SELECT
Type = TypeNode.value('@ID', 'int'),
NodeValue = TypeNode.value('(value)[1]', 'varchar(50)')
FROM
@XML.nodes('/Params/type') AS XTbl(TypeNode)
我不清楚id
列应该是什么/应该是什么 - 小心解释?