我正在获取XML参数,现在我想从中获取数据并使用该数据并调用另一个SP。
现在我正在尝试拆分输入xml变量。
DECLARE @XML XML Set @XML = '<Products>
<product>
<id>3</id>
<name>Testar 3</name>
</product>
<product>
<id>6</id>
<name>Testar 6</name>
</product>
<product>
<id>15</id>
<name>Testar 15</name>
</product>
</Products>'
SELECT CAST(A.B.query('./product/id/text()') AS VARCHAR(20)) as id, CAST(A.B.query('./product/name/text()') AS VARCHAR(50)) as name FROM @XML.nodes('/Products') as A(B)
但是这只能得到1行,其中2列看起来像这样。
ID Name
3615 Testar 3Testar 6Testar 15
但我想要的是这个
ID Name
3 Testar 3
6 Testar 6
15 Testar 15
我需要改变什么才能实现这一目标?
由于 马格努斯
答案 0 :(得分:4)
select
P.value('id[1]', 'int') as ID,
P.value('name[1]', 'varchar(50)') as Name
from @XML.nodes('Products/product') as P(P)