我想将 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 解释和示例的好资源?