简体   繁体   中英

rolling up multiple rows in a single row in a colum order in sql server

How can I return multiple rows with the same values into a single row as comma separated and combined in ascendant order in a single column (in SQL server)?

Table2

------------
col1 | col2 | col3
----------------------
1    | line1 | 2
1    | line2 | 1
1    | line3 | 4
2    | line4 | 1
2    | line5 | 3
2    | line6 | 2  
3    | line7 | 2
3    | line8 | 1

Desired result in ascendant order according to col3:

Col1 |  col2
----------------------------
1    | Line2,Line1,Line3
2    | Line4,Line6,Line5
3    | Line8,Line7

Hopefully this is what you are looking for:

select Col1, string_agg(Col2, ',') within group(order by Col3)
from Table2
group by Col1

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM