Je hebt de vraag getagd met zowel sql-server als plsql, dus ik zal antwoorden geven voor zowel SQL Server als Oracle.
In SQL Server kunt u FOR XML PATH
. gebruiken om meerdere rijen samen te voegen:
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;
Zie SQL Fiddle met demo .
In Oracle 11g+ kunt u LISTAGG
. gebruiken :
select "User",
listagg(department, ',') within group (order by "User") as departments
from yourtable
group by "User"
Vóór Oracle 11g kon u de wm_concat
. gebruiken functie:
select "User",
wm_concat(department) departments
from yourtable
group by "User"