在本教學中,將學習如何使用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函數