【问题标题】:Deserialize XML object in T-SQL在 T-SQL 中反序列化 XML 对象
【发布时间】:2015-03-12 01:09:25
【问题描述】:

我有一个 XML 对象。我想使用 T-SQL 将其反序列化为一个表。

<Params>
    <type = 1> 
        <value> 10 </value>
    </type>

    <type = 2> 
        <value> abc </value>
    </type>
</Params>

如何将这些数据存储到这样的表中:

谢谢!

【问题讨论】:

  • 你不能。您的 XML 无效。
  • 您的 xml 类型有问题 = 1 是无效的 xml 标签

标签: sql-server xml tsql xquery


【解决方案1】:

您的 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 列应该是什么/应该是什么 - 需要解释一下吗?

【讨论】:

  • 我猜是row_number()
猜你喜欢
  • 2021-08-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-31
  • 1970-01-01
  • 1970-01-01
  • 2013-09-24
  • 2020-05-10
相关资源
最近更新 更多