[英]how to extract data from xml having multiple nodes which are same under a parent node into a table in sql
我有一个像
<list of roleids>
<roleid> 1 </roleid>
<roleid> 2 </roleid>
<roleid> 3 </roleid>
<roleid> 4 </roleid>
</list of Roleids>
我想要带有RoleID列的表中的roleid值
我已尝试使用以下查询,但未获得预期的输出
declare @ListOfRoleID XML
set @ListOfRoleID =
'<list>
<roleid>1</roleid>
<roleid>2</roleid>
</list>'
DECLARE @RoleIDList TABLE (RoleID int)
INSERT INTO @RoleIDList(RoleID)
SELECT X1.value('(roleid)[1]','INT') as roleid
from @ListOfRoleID.nodes('/list') as ListOfRoleID(x)
CROSS APPLY @RoleIDList.nodes('/list') AS ListOfRoleID1 (X1)
您要投影.nodes('/list/roleid')
,这将为每个roleid创建一行。 然后提取值。 无需交叉申请。 参见sqlfiddle :
declare @ListOfRoleID XML = '<list>
<roleid>1</roleid>
<roleid>2</roleid>
<roleid>3</roleid>
</list>';
SELECT x.value('.','INT') as roleid
from @ListOfRoleID.nodes('/list/roleid') as ListOfRoleID(x);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.