// you’re reading...

Programmieren

Oracle Ergebnisse in eine Zeile

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”

Kommentar schreiben