create table test(id number,name varchar2(20)); insert into test values(1,'a'); insert into test values(1,'b'); insert into test values(1,'c'); insert into test values(2,'d'); insert into test values(2,'e'); commit; -- Before the 11g2 version, WM_CONTCAT was used to connect SELECT ID, WM_CONCAT(NAME) NAME FROM TEST GROUP BY ID; --After 11g2 version, use ListAgg SELECT ID, LISTAGG(NAME, ',') WITHIN GROUP(ORDER BY NAME DESC) RANK --GROUP refers to the sorting after grouping FROM TEST GROUP BY ID; SELECT ID, NAME, LISTAGG(NAME, ',') WITHIN GROUP(ORDER BY ID DESC) OVER(PARTITION BY ID) RANK --Do not use GROUP, use PARTITION grouping FROM TEST;