Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Wie können mehrere Zeilen in Oracle zu einer verkettet werden, ohne eine gespeicherte Prozedur zu erstellen?

Ab Oracle 11gR2 sollte die LISTAGG-Klausel funktionieren:

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

Vorsicht, wenn die resultierende Zeichenfolge zu groß ist (zum Beispiel mehr als 4000 Zeichen für ein VARCHAR2):Ab Version 12cR2 können wir ON OVERFLOW TRUNCATE/ERROR verwenden, um dieses Problem zu lösen.