Sql server Xquery中的xml.value()仅返回1条记录
我在xml文件中有多个abc节点,但它返回第一行的值,正如我们指定的[1],如果我写入[2],它将返回第二行 我想返回所有abc循环中元素的所有值 使用的查询:Sql server Xquery中的xml.value()仅返回1条记录,sql-server,xquery-sql,Sql Server,Xquery Sql,我在xml文件中有多个abc节点,但它返回第一行的值,正如我们指定的[1],如果我写入[2],它将返回第二行 我想返回所有abc循环中元素的所有值 使用的查询: Insert Into @temp(aa,bb) SELECT y.b.value('(abc/Segment/Element)[1]', 'NVARCHAR(50)') , y.b.value('(abc/Segment/Element)[1]', 'NVARCHAR(50)') FROM @x.nodes('(a1/b1/c1)
Insert Into @temp(aa,bb)
SELECT
y.b.value('(abc/Segment/Element)[1]', 'NVARCHAR(50)') ,
y.b.value('(abc/Segment/Element)[1]', 'NVARCHAR(50)')
FROM @x.nodes('(a1/b1/c1)') AS y(b)
下面的查询给出了所需的结果,但我无法使用该查询,因为我需要从同一查询中的位置a1/b1/c1访问其他字段
Insert Into @temp(aa,bb)
SELECT
y.b.value('(Segment/Element)[1]', 'NVARCHAR(50)') ,
y.b.value('(Segment/Element)[1]', 'NVARCHAR(50)')
FROM @x.nodes('(a1/b1/c1/abc)') AS y(b)
在y.b上使用交叉应用来获取abc的行
select z.b.value('(Segment/Element)[1]', 'nvarchar(50)') ,
z.b.value('(Segment/Element)[1]', 'nvarchar(50)')
from @x.nodes('(a1/b1/c1)') as y(b)
cross apply y.b.nodes('abc') as z(b);