所以我有下面的内容,可以让我从表中的一条记录中获取 xml Products
。
但是,我需要能够从Products
表中的所有记录中获取 XML 及其ProductId
.
我对如何开始感到困惑。
DECLARE @MyXML XML
SET @MyXML =
(SELECT ProductsXML
FROM Products
WHERE ProductId= 1)
SELECT
a.b.value('@upccode','int') as UPC,
a.b.value('@dateadded','date') as DateAdded
FROM
@MyXML.nodes('xml/Product/UPC')a(b);
我正在使用 SQL Server 2008。
测试数据:
ProductId: 1
ProductsXML:
<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>
ProductId: 2
ProductsXML:
<xml>
<Product>
<UPC upccode="9876" dateadded="9/9/2012"/>
<UPC upccode="9877" dateadded="9/8/2012"/>
<UPC upccode="0998" dateadded="9/7/2012"/>
<UPC upccode="7877" dateadded="9/6/2012"/>
</Product>
</xml>
我正在寻找的结果是这样的:
ProductId UPC DateAdded
--------- --- ---------
1 1237 10/9/2012
1 1236 10/8/2012
....
2 9876 9/9/2012
2 9877 9/8/2012
现在我可以得到上述但只能通过一次指定一个PoductId
。我希望能够在不指定每个条目的情况下运行所有“产品”。