在本教程中,将学习如何使用SQL Server STRING_AGG()函数将字符串行连接成为具有指定分隔符的一个字符串。
SQL Server STRING_AGG()函数简介
STRING_AGG()是一个聚合函数,它将由指定的分隔符分隔将字符串行连接成一个字符串。 它不会在结果字符串的末尾添加分隔符。
以下是STRING_AGG()函数的语法:
STRING_AGG ( input_string, separator ) [ order_clause ]
在这个语法中:
input_string是串联时可以转换为VARCHAR和NVARCHAR的类型。separator是结果字符串的分隔符。它可以是文字或变量。order_clause使用WITHIN GROUP子句指定连接结果的排序顺序:
WITHIN GROUP ( ORDER BY expression [ ASC | DESC ] )
STRING_AGG()忽略NULL,并且在执行连接时不会为NULL添加分隔符。
SQL Server STRING_AGG()函数示例
下面将使用示例数据库中的sales.customers表进行演示:

1. 使用STRING_AGG()函数生成逗号分隔值
此示例使用STRING_AGG()函数生成城市客户的电子邮件列表:
SELECT
city,
STRING_AGG(email,';') email_list
FROM
sales.customers
GROUP BY
city;
执行上面查询语句,得到以下结果:

要对email列表进行排序,请使用WITHIN GROUP子句:
SELECT
city,
STRING_AGG(email,';')
WITHIN GROUP (ORDER BY email) email_list
FROM
sales.customers
GROUP BY
city;
执行上面查询语句,得到以下结果:

在本教程中,学习了如何使用SQL Server STRING_AGG()函数将字符串行连接到具有指定分隔符的一个字符串中。
上一篇:
SQL Server字符串函数
下一篇:
SQL Server Window函数
