Mark,
Si vous êtes sur la version 11gR2, et qui n'est pas :-), vous pouvez utiliser listagg
SQL> create table t (col1,col2)
2 as
3 select 'a', 'x' from dual union all
4 select 'a', 'y' from dual union all
5 select 'a', 'z' from dual union all
6 select 'b', 'i' from dual union all
7 select 'b', 'j' from dual union all
8 select 'b', 'k' from dual
9/
Tabel is aangemaakt.
SQL> select col1
2 , listagg(col2,',') within group (order by col2) col2s
3 from t
4 group by col1
5/
COL1 COL2S
----- ----------
a x,y,z
b i,j,k
2 rijen zijn geselecteerd.
Si votre version n'est pas 11gR2, mais plus que 10gR1, alors je recommande d'utiliser la clause modèle pour cela, comme écrit ici: http://rwijk.blogspot.com/2008/05/string-aggregation-with-model-clause.html
Si inférieur à 10, alors vous pouvez voir plusieurs techniques dans le lien de rexem à la page oracle-base, ou dans le l encre au fil OTN dans le blogpost mentionné ci-dessus.
Cordialement, Rob.