在本教程中,将学习如何使用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()
函数将字符串行连接到具有指定分隔符的一个字符串中。