【问题标题】:How to retrieve all values from xml in SQL如何在 SQL 中从 xml 中检索所有值
【发布时间】:2013-07-14 03:34:36
【问题描述】:

我是 SQL 的新手,并且陷入了一个非常常见的场景。我的存储过程中有一个带有嵌套子项的 xml 作为输入参数

    <XML>
    <Id>1</Id>
    <Age>1</Age>
    <Address>Test</Address>
    .
    .
    <Days>
      <long>1</long>
      <long>2</long>
      <long>3</long>
      <long>7</long>
    </Days>
  </XML>

我可以通过

在 XML 标记中选取数据

Id = t.Xml.value('(./Id)[last()]','int')

但我不知道如何在 XML/Days 中选择所有长值。我试过了

 long = t.UserXml.value('.','int')

并将所有值返回为 1237 但这并不能解决我的问题。我需要不同行中的值,长值需要插入到另一个表中。

请让我知道可能的解决方案。 谢谢

【问题讨论】:

    标签: mysql sql sql-server sql-server-2008


    【解决方案1】:

    Sqlserver 上几天的解决方案可能是

    DECLARE @XML XML
    SET @XML='<XML>
        <Id>1</Id>
        <Age>1</Age>
        <Address>Test</Address>
        <Days>
          <long>1</long>
          <long>2</long>
          <long>3</long>
          <long>7</long>
        </Days>
      </XML>'
    
    SELECT 
        x.y.value('text()[1]', 'int') as xx
    FROM @xml.nodes('XML/Days/long') x(y)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-21
      相关资源
      最近更新 更多