Si vous avez 11g Release 2, vous pouvez utiliser Listagg
:
Select a, Listagg(b, ', ') Within Group ( Order By b )
From t
Group By a
Il permet de trier vos valeurs, et il est déjà fourni avec Oracle :
A1 B1, B2, B3
A2 B1, B4
Sinon, vous pouvez utiliser le stragg
fonction de Tom Kyte, décrite dans Rows to String.
Select a, stragg(b)
From t
Group By a
renvoie
A1 B1,B3,B2
A2 B1,B4