0
我试图从SQL查询中获取XML中的所有属性和节点值。SQL Server 05:在查询中从XML数据类型读取值
我试着做下面的事情,但我错过了输出中的几个值。 这里是我的尝试:
DECLARE @Details xml
SET @Details = '<root>
<SelectedCategory CategoryId="101">
<ItemID>120</ItemID>
<ItemID>256</ItemID>
</SelectedCategory>
<SelectedCategory CategoryId="125">
<ItemID>158</ItemID>
<ItemID>120</ItemID>
</SelectedCategory>
<SelectedCategory CategoryId="15">
<ItemID>5986</ItemID>
<ItemID>20</ItemID>
<ItemID>268</ItemID>
</SelectedCategory>
</root>'
SELECT
SelCat.CatDet.value('(@CategoryId)[1]', 'int') as "CategoryID",
SelCat.CatDet.value('.', 'int') as "ItemID"
FROM @Details.nodes('/root/SelectedCategory') as SelCat(CatDet)
这是显示输出:
CategoryID ItemID
101 120256
125 158120
15 598620268
虽然所需的输出可以在以下任一:
CategoryID ItemID
101 120
101 256
125 158
125 120
15 5986
15 20
15 268
OR
CategoryID ItemID
101 120
NULL 256
125 158
NULL 120
15 5986
NULL 20
NULL 268
任何人都知道如何做到这一点?
谢谢!它的作品:)但我是一个新手解析XML :(你能解释这实际上是如何工作的? – Kay 2009-11-18 14:29:32