SQL中用逗号分隔XML节点

SQL中用逗号分隔XML节点,sql,xml,Sql,Xml,我的专栏内容如下: 自定义标签 <CustomTagsSerialiser> <custom-tags> <tag>Visas and travel</tag> <tag>Explore Options</tag> <tag>Consider – feasibility</tag> </custom-tags> </CustomTagsSerialis

我的专栏内容如下:

自定义标签

<CustomTagsSerialiser>
  <custom-tags>
    <tag>Visas and travel</tag>
    <tag>Explore Options</tag>
    <tag>Consider – feasibility</tag>
  </custom-tags>
</CustomTagsSerialiser>
但我希望结果有一个用逗号分隔的标记(在同一列中),如下所示:

Visas and travel,Explore Options,Consider – feasibility
理想情况下,我希望通过使用XML功能/节点来实现这一点 您可以参考此答案,而不是将其分解为+'、'+或合并

试试下面

SELECT
    STUFF((SELECT 
              ',' + CTS.tag.value('(.)[1]', 'nvarchar(500)')
           FROM 
              Temp12345
           CROSS APPLY
              col1.nodes('/CustomTagsSerialiser/custom-tags/tag') AS CTS(tag)
           FOR XML PATH('')
          ), 1, 1, '')

应在不使用交叉应用的情况下执行此操作

STUFF((SELECT ',' + x.t.value('.', 'varchar(50)') FROM 
[g].CustomTags.nodes('//tag') x(t) FOR XML PATH('')), 1, 1, '') AS 'Custom Tags'
你用的是什么产品?“SQL”只是一种查询语言,而不是特定数据库产品的名称,并且XML支持是高度特定于供应商的。请为您正在使用的数据库产品添加
STUFF((SELECT ',' + x.t.value('.', 'varchar(50)') FROM 
[g].CustomTags.nodes('//tag') x(t) FOR XML PATH('')), 1, 1, '') AS 'Custom Tags'