【问题标题】:How to get XML attributes from XML with an unknown number of rows如何从具有未知行数的 XML 中获取 XML 属性
【发布时间】:2012-10-09 17:31:04
【问题描述】:

我有以下查询,允许我从指定列的一行 xml 中获取 xml 数据。

但是,产品可以有 1 个 UPC 子级,或者很多。

如何更改查询以返回 Product 的所有现有子项?

DECLARE @MyXML XML
SET @MyXML =
    (SELECT ProductsXML
     FROM Products
     WHERE ProductId= 1)
SELECT 
    a.b.value('Product[1]/UPC[1]/@upccode','DATE') as UPC,
    a.b.value('Product[1]/UPC[1]/@dateadded','DATE') as DateAdded
    FROM @MyXML.nodes('xml')a(b) 

【问题讨论】:

    标签: sql xml sql-server-2008


    【解决方案1】:
    DECLARE @MyXML XML;
    SET @MyXML =
        N'<xml>
            <Product>
                <UPC upccode="1237" dateadded="10/9/2012"/>
                <UPC upccode="1236" dateadded="10/8/2012"/>
                <UPC upccode="1235" dateadded="10/7/2012"/>
                <UPC upccode="1234" dateadded="10/6/2012"/>
            </Product>
        </xml>';
    
    SELECT 
        a.b.value('@upccode','int') as UPC,
        a.b.value('@dateadded','date') as DateAdded
    FROM
        @MyXML.nodes('xml/Product/UPC')a(b);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-15
      • 2019-03-13
      • 2012-10-22
      • 2013-11-21
      • 1970-01-01
      • 1970-01-01
      • 2016-08-01
      • 1970-01-01
      相关资源
      最近更新 更多