sql-server – 以逗号分隔列表的形式从SQL Server列获取XML节点

前端之家收集整理的这篇文章主要介绍了sql-server – 以逗号分隔列表的形式从SQL Server列获取XML节点前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个存储在xml列中的数据,需要以逗号分隔的子节点列表.使用下面的脚本,我只能获得“A B C”.请帮助我使用xquery获取“A,B,C”(用逗号简单替换空格没有帮助,因为我们有内部空格的数据).
create table Temp12345 (col1 xml)
go

insert into Temp12345 (col1)
values('<fd><field i="22"><v>A</v><v>B</v><v>C</v></field></fd>')
go

select col1.value('(/fd/field[@i=22])[1] ','NVarchar(Max)') 
from Temp12345
go

drop table Temp12345
go

解决方法

尝试这个:
SELECT
    STUFF((SELECT 
              ',' + fd.v.value('(.)[1]','varchar(10)')
           FROM 
              Temp12345
           CROSS APPLY
              col1.nodes('/fd/field/v') AS fd(v)
           FOR XML PATH('')
          ),1,'')

这给了我A,C – 它也适合你吗?

猜你在找的MsSQL相关文章