SQL Server STRING_AGG


參考: 

How To Use STRING_AGG – Concat Multiple Row Values In SQL Server

如果你想做 string.join(',', collection) 的話, 那么就可以使用 STRING_AGG 了

 

1. 簡單用

SELECT STRING_AGG(Name, ',') AS NameStringList FROM Person

結果是: keatkeat, xinyao, mark

NULL 會被自動過濾掉, 如果你要自行處理 null 可以使用 ISNULL(Name, 'N/A') 之類的方式. 

 

2. 配合 group by

SELECT AGE, STRING_AGG(Name, ',') AS NameStringList FROM Person GROUP BY AGE

 

3. 再排序 

SELECT AGE, STRING_AGG(Name, ',') WITHIN GROUP (ORDER BY Name ASC) AS NameStringList FROM Person GROUP BY AGE

通過 WITHIN GROUP 還可以對結果再排序哦. 

 

4. 遇上 DISTINCT

如果出來的結果想要 distinct 的話

Produce DISTINCT values in STRING_AGG

Get unique values using STRING_AGG in SQL Server

如果不考慮性能的話, 我覺得簡單粗暴的方式就是直接 SPLIT 然后 DISTINCT 再 JOIN 回去.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM