Microsoft SQL Server 使用FOR XML PATH连接值

示例

该FOR XML PATH可用于串联值转换为字符串。下面的示例将值连接为CSV字符串:

DECLARE @DataSource TABLE

(

    [rowID] TINYINT

   ,[FirstName] NVARCHAR(32)

);

INSERT INTO @DataSource ([rowID], [FirstName])

VALUES (1, 'Alex')

      ,(2, 'Peter')

      ,(3, 'Alexsandyr')

      ,(4, 'George');

SELECT STUFF

(

    (

        SELECT ',' + [FirstName]

        FROM @DataSource

        ORDER BY [rowID] DESC

        FOR XML PATH(''), TYPE

    ).value('.', 'NVARCHAR(MAX)')

    ,1

    ,1

    ,''

);

几个重要说明:

  • 该ORDER BY子句可用于以首选方式对值进行排序

  • 如果将较长的值用作串联分隔符,则也STUFF必须更改功能参数;

SELECT STUFF

(

    (

        SELECT '---' + [FirstName]

        FROM @DataSource

        ORDER BY [rowID] DESC

        FOR XML PATH(''), TYPE

    ).value('.', 'NVARCHAR(MAX)')

    ,1

    ,3 -- the "3" could also be represented as: LEN('---') for clarity

    ,''

);

  • 当使用TYPE选项和.value功能时,串联可与NVARCHAR(MAX)字符串一起使用

以上是 Microsoft SQL Server 使用FOR XML PATH连接值 的全部内容, 来源链接: utcz.com/z/321314.html

回到顶部