次の XML があるとします (「xfield」という SQL 列フィールド内):
<data>
<section>
<item id="A">
<number>987</number>
</item>
<item id="B">
<number>654</number>
</item>
<item id="C">
<number>321</number>
</item>
</section>
<section>
<item id="A">
<number>123</number>
</item>
<item id="B">
<number>456</number>
</item>
<item id="C">
<number>789</number>
</item>
</section>
</data>
次のテーブル構造を取得するにはどうすればよいですか (列名として A、B & C を使用):
A | B | C
987|654|321
123|456|789
SQL XQueryを使用して、これを試しています(当然のことながら、無効です):
SELECT
data.value('(./section/item[@ID = "A"]/number/[1])', 'int') as A,
data.value('(./section/item[@ID = "B"]/number/[1])', 'int') as B,
data.value('(./section/item[@ID = "C"]/number/[1])', 'int') as C
FROM Table CROSS APPLY [xfield].nodes('/data') t(data)