Sql 如何从行数未知的XML中获取XML属性
下面的查询允许我从指定列的一行xml中获取xml数据 然而,产品可以有1个UPC子级,或者很多 如何更改查询以返回产品的所有现有子级Sql 如何从行数未知的XML中获取XML属性,sql,xml,sql-server-2008,Sql,Xml,Sql Server 2008,下面的查询允许我从指定列的一行xml中获取xml数据 然而,产品可以有1个UPC子级,或者很多 如何更改查询以返回产品的所有现有子级 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('P
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)
DECLARE@MyXML;
SET@MyXML=
不
';
挑选
a、 b.值(“@upccode”,“int”)作为UPC,
a、 b.值(“@dateadded”,“date”)作为dateadded
从…起
@节点('xml/Product/UPC')a(b);
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);