Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como várias linhas podem ser concatenadas em uma no Oracle sem criar um procedimento armazenado?


Do Oracle 11gR2, a cláusula LISTAGG deve fazer o truque:
SELECT question_id,
       LISTAGG(element_id, ',') WITHIN GROUP (ORDER BY element_id)
FROM YOUR_TABLE
GROUP BY question_id;

Cuidado se a string resultante for muito grande (mais de 4000 caracteres para um VARCHAR2, por exemplo):a partir da versão 12cR2, podemos usar ON OVERFLOW TRUNCATE/ERROR para lidar com esse problema.