在SQL Server数据库中,假如一张数据表中有一个名为Name的列/字段,这个列有多行记录,现需要将这一列的数据使用逗号进行连接,组成一行以逗号连接的字符串,模拟数据如下:
Name
Name ------------- Mary John Sam Alaina Edward
期望得到的使用逗号连接的字符串为:
Mary,John,Sam,Alaina,Edward
使用SQL查询脚本应该如何实现呢?
Rector
2020-05-01 提问
在低版本(如:SQL Server 2005)的数据库中,可以使用FOR XML PATH()语法,示例如下:
FOR XML PATH()
在高版本(如:SQL Server 2016)的数据库中,可以使用FOR JSON PATH语法,示例如下:
FOR JSON PATH
2020-04-29 回答
这里提供一种可按某个列/字段分组然后使用逗号连接其他列的实现方法,如下:
表名为Students,模拟数据如下:
Students
查询语句如下:
使用COALESCE函数,如下:
COALESCE
如果使用的是SQL Server 2017+版本,还可以使用STRING_AGG函数,比如:
STRING_AGG
不分组(无GROUP BY)
分组(有GROUP BY)
分组并进行子查询排序
码龄: 3133天
专注.NET/.NET Core