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