Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment plusieurs lignes peuvent-elles être concaténées en une seule dans Oracle sans créer de procédure stockée ?

A partir d'Oracle 11gR2, la clause LISTAGG devrait faire l'affaire :

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

Attention si la chaîne résultante est trop grande (plus de 4000 caractères pour un VARCHAR2 par exemple) :à partir de la version 12cR2, on peut utiliser ON OVERFLOW TRUNCATE/ERROR pour traiter ce problème.