Oracle
 sql >> Database >  >> RDS >> Oracle

Come possono essere concatenate più righe in una in Oracle senza creare una stored procedure?

Da Oracle 11gR2, la clausola LISTAGG dovrebbe fare il trucco:

SELECT question_id,
       LISTAGG(element_id, ',') WITHIN GROUP (ORDER BY element_id)
FROM YOUR_TABLE
GROUP BY question_id;

Attenzione se la stringa risultante è troppo grande (più di 4000 caratteri per un VARCHAR2, per esempio):dalla versione 12cR2, possiamo usare ON OVERFLOW TRUNCATE/ERROR per affrontare questo problema.