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