SELECT ergebnistext FROM datentabelle; listet in mehr oder weniger vielen Zeilen alle Ergebnisse auf. Was aber, wenn man die Ergebnismenge nicht in Zeilen ausgegeben haben möchte, sondern in einer Zeile bzw. Zelle?
In Oracle kann mittels spezifischer Befehlssyntax eine separierte Liste (zum Beispiel Kommagetrennt als CSV) erstellt werden. Die Ergebnismenge wird in eine Zeile zusammengefasst bzw. transponiert.
Die Lösung sieht wie folgt aus:
Lösung
SELECT SUBSTR (SYS_CONNECT_BY_PATH (ergebnistext , ','), 2) csv
FROM (SELECT ergebnistext , ROW_NUMBER () OVER (ORDER BY ergebnistext ) rn,
COUNT (*) OVER () cnt
FROM datentabelle )
WHERE rn = cnt
START WITH rn = 1
CONNECT BY rn = PRIOR rn + 1;
Mittels diesem SQL wird das mehrzeilige Ergebnis der Spalte ergebnistext in einer Zeile/Zelle kommagetrennt dargestellt. Begrenzt ist dies jedoch durch die maximale Anzahl Zeichen, welche dargestellt werden kann.



Diskussion
Keine Kommentare für “Oracle Ergebnisse in eine Zeile”