したがって、テーブル内の1つのレコードから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
に 1 つずつ指定する必要があります。各エントリを指定せずにすべての「製品」を実行できるようにしたいと考えています。