XML フィールドを複数列のデータセットに「分割」したいと考えています。XML は次のようになります。
<simple>
<propertyid>
<value>p1</value>
<value>p2</value>
<value>p3</value>
<value>p4</value>
</propertyid>
<complexid>
<value>c1</value>
<value>c2</value>
<value>c3</value>
</complexid>
</simple>
私はそのようなことをしようとしました (TSQL で XML を扱うたびに、私のコードは間違っていると感じます):
;WITH source AS (
SELECT CAST(@xmlstring AS XML) AS x
)
SELECT
items.item.query('.')
FROM source
CROSS APPLY x.nodes('/simple/*/value') AS items(item)
予想されるデータセット:
ColumnName Value
------------------------
propertyid p1
propertyid p2
propertyid p3
propertyid p4
complexid c1
complexid c2
complexid c3
どうすれば必要な結果を得ることができますか? T-SQL + XML + XQuery の説明とサンプルで良いリソースをお勧めできますか?