sqlserver多行怎么合并成一行

   2025-02-04 6660
核心提示:可以使用以下方法将多行合并成一行:使用FOR XML PATH('')拼接行:SELECT STUFF((SELECT ',' + ColumnNameFROM Ta

可以使用以下方法将多行合并成一行:

使用FOR XML PATH('')拼接行:
SELECT STUFF((SELECT ',' + ColumnName              FROM TableName              FOR XML PATH('')), 1, 1, '') AS MergedColumnFROM TableName
使用STRING_AGG函数:
SELECT STRING_AGG(ColumnName, ',') AS MergedColumnFROM TableName
使用递归CTE(通用方法):
WITH RecursiveCTE AS (    SELECT ColumnName, ROW_NUMBER() OVER (ORDER BY ColumnName) AS RowNumber    FROM TableName    UNION ALL    SELECT r.ColumnName + ',' + t.ColumnName, t.RowNumber    FROM RecursiveCTE r    INNER JOIN TableName t ON t.RowNumber = r.RowNumber + 1)SELECT TOP 1 ColumnNameFROM RecursiveCTEORDER BY RowNumber DESCOPTION (MAXRECURSION 0)

请注意,以上方法适用于SQL Server 2017或更高版本。在较早的版本中,可能需要使用其他方法来实现多行合并成一行。

 
 
更多>同类维修知识
推荐图文
推荐维修知识
点击排行
网站首页  |  关于我们  |  联系方式  |  用户协议  |  隐私政策  |  网站留言