📅  最后修改于: 2023-12-03 15:07:49.473000             🧑  作者: Mango
在开发过程中,有时需要将SQL查询结果中的多行数据合并为一行字符串,这时可以使用SQL Server中的字符串聚合函数来实现。
使用STUFF / XML PATH方法时,需要将每个行数据转换为XML节点,然后使用STUFF函数进行字符串拼接。
示例代码如下:
SELECT
STUFF(
(SELECT ', ' + CONVERT(VARCHAR(10), ColumnName)
FROM TableName
FOR XML PATH('')
), 1, 2, ''
) AS ColumnNameList
解释:
SQL Server 2017及以上版本已经支持了新的字符串合并函数STRING_AGG。
示例代码如下:
SELECT STRING_AGG(ColumnName, ', ') AS ColumnNameList
FROM TableName
解释:
使用上述两种方法均可实现将SQL查询结果中的多行数据合并为一行字符串,选择哪种方法主要取决于所使用的SQL Server版本。如果版本较低,可以使用STUFF / XML PATH方法,如果版本较高,可以使用STRING_AGG方法。
参考链接: