Transformer des lignes en colonnes

Pour transformer des lignes en colonnes, depuis Oracle 11g, rien de plus simple.

Il suffit d’utiliser la fonction listagg. Ci-dessous un exemple :

select
    r.i_version
    , r.i_type_requete
    , r.i_code_appli
    , r.i_nd
    , e.info
    , listagg(e.offre_com, ',') within group (order by e.offre_com) as offres
from
    requete r
    , etude e
where
    r.o_id_histo = e.id_histo
and trunc(r.o_date_histo) = trunc(sysdate)
and rownum < 101
group by
    r.i_version
    , r.i_type_requete
    , r.i_code_appli
    , r.i_nd
    , e.info
;

Les commentaires sont fermés.