且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

使用 SQL Server 2005 XQuery 从 XML 获取分隔字符串

更新时间:2022-11-28 18:23:59

怎么样 - 这将适用于 XML 变量中任意数量的 节点:

How about this - this will work for any number of <AAA> nodes in an XML variable:

DECLARE @Input XML = '<AAA>
  <Name>Name_A</Name>
  <Value>Val_A</Value>
</AAA>
<AAA>
  <Name>Name_B</Name>
  <Value>Val_B</Value>
</AAA>
<AAA>
  <Name>Name_C</Name>
  <Value>Val_C</Value>
</AAA>'

SELECT
    STUFF(
    (SELECT 
        ',' + AAA.value('(Value)[1]', 'varchar(20)')
     FROM
        @Input.nodes('/AAA') AS Node(AAA)
     FOR XML PATH('')
    ), 1, 1, '')

输出为:

Val_A,Val_B,Val_C