0

指定された列のxmlの1行からxmlデータを取得できる次のクエリがあります。

ただし、Product は 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) 
4

1 に答える 1

0
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);
于 2012-10-09T17:40:13.227 に答える