sql >> Base de Datos >  >> RDS >> Oracle

¿Cómo se pueden concatenar varias filas en una sola en Oracle sin crear un procedimiento almacenado?

Desde Oracle 11gR2, la cláusula LISTAGG debería funcionar:

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

Tenga cuidado si la cadena resultante es demasiado grande (más de 4000 caracteres para un VARCHAR2, por ejemplo):desde la versión 12cR2, podemos usar ON OVERFLOW TRUNCATE/ERROR para solucionar este problema.