首页 > 解决方案 > 在sql中按行显示列值

问题描述

我们可以让列值按行显示,用逗号分隔吗?例如,下面返回一列。我们能否实现预期的输出

select [name] as database_name
from sys.databases

实际输出

database_name
db1
db2
db3

预期产出

database_name
db1, db2, db3

标签: sqlsql-serverstring-aggregation

解决方案


是的,您可以使用 FOR XML PATH 来连接列值:

SELECT name = STUFF((
            SELECT ',' + NAME
            FROM sys.databases
            FOR XML PATH('')
            ), 1, 1, '')

推荐阅读