Anda menandai pertanyaan dengan sql-server dan plsql jadi saya akan memberikan jawaban untuk SQL Server dan Oracle.
Di SQL Server Anda dapat menggunakan FOR XML PATH
untuk menggabungkan beberapa baris menjadi satu:
select distinct t.[user],
STUFF((SELECT distinct ', ' + t1.department
from yourtable t1
where t.[user] = t1.[user]
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,2,'') department
from yourtable t;
Lihat SQL Fiddle dengan Demo .
Di Oracle 11g+ Anda dapat menggunakan LISTAGG
:
select "User",
listagg(department, ',') within group (order by "User") as departments
from yourtable
group by "User"
Lihat SQL Fiddle dengan Demo
Sebelum Oracle 11g, Anda dapat menggunakan wm_concat
fungsi:
select "User",
wm_concat(department) departments
from yourtable
group by "User"