свертывание нескольких строк в одну строку в порядке столбцов на сервере sql

Как я могу вернуть несколько строк с одинаковыми значениями в одну строку, разделенную запятыми и объединенную в порядке возрастания в одном столбце (в SQL-сервере)?

Таблица 2

------------
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

Желаемый результат в порядке возрастания согласно col3:

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

person db_NewUser    schedule 11.09.2019    source источник
comment
какую RDMS вы используете? И не похоже, что вы используете таблицу 2?   -  person kjmerf    schedule 11.09.2019
comment
Возможный дубликат форматирования запросов сервера sql   -  person Rob Streeting    schedule 11.09.2019
comment
Теперь, думаю, более понятно, я обновил вопрос :)   -  person db_NewUser    schedule 11.09.2019
comment
Что такое ваш rdbms? Sql-сервер, postgres, оракул? Какая версия?   -  person Juan Carlos Oropeza    schedule 11.09.2019
comment
rdbms - это SQL-сервер   -  person db_NewUser    schedule 11.09.2019
comment
Любопытно, почему вам нужны значения, разделенные запятыми, внутри столбца? Как это помогает в любых отчетах или аналитических потребностях.   -  person Parfait    schedule 11.09.2019
comment
Хороший вопрос. Мне нужно найти те, которые не имеют данных в качестве категории для отчета.   -  person db_NewUser    schedule 11.09.2019


Ответы (1)


Надеюсь, это то, что вы ищете:

select Col1, string_agg(Col2, ',') within group(order by Col3)
from Table2
group by Col1
person Neeraj Agarwal    schedule 11.09.2019
comment
@SQL_NewUser У меня работает. Возможно, вам нужен порядок сортировки по убыванию, и в этом случае вы можете внести следующее изменение (упорядочить по Col3 desc). - person Neeraj Agarwal; 11.09.2019