Heim >Datenbank >MySQL-Tutorial >Wie aggregiere ich Zeilen in durch Kommas getrennten Listen in Oracle?
Oracle: Zeilen in durch Kommas getrennte Listen kombinieren
Häufig erfordert die Datenmanipulation die Zusammenfassung mehrerer Zeilen in einer einzigen, durch Kommas getrennten Zeichenfolge. Oracle bietet hierfür mehrere Methoden an:
Methode 1: LISTAGG (Oracle 11.2 und höher)
Die Funktion LISTAGG
(verfügbar ab Oracle 11.2) verkettet Zeilen effizient mithilfe eines angegebenen Trennzeichens. Seine Syntax ist:
<code class="language-sql">LISTAGG(expression, delimiter [, separator]) WITHIN GROUP (ORDER BY order_expression)</code>
Beispiel: Generieren einer durch Kommas getrennten Liste von Ländernamen aus einer countries
-Tabelle:
<code class="language-sql">SELECT LISTAGG(country_name, ', ') WITHIN GROUP (ORDER BY country_name) FROM countries;</code>
Methode 2: WM_CONCAT (Oracle-Versionen vor 11.2)
Für ältere Oracle-Datenbanken (vor 11.2) bietet die Funktion WM_CONCAT
eine ähnliche Funktion:
<code class="language-sql">SELECT WM_CONCAT(country_name) FROM countries;</code>
Methode 3: Benutzerdefinierte PL/SQL-Funktion
Sollten weder LISTAGG
noch WM_CONCAT
ausreichen, bietet eine benutzerdefinierte PL/SQL-Funktion eine flexible Lösung. Dies ermöglicht eine maßgeschneiderte Verkettungslogik, wie im bereitgestellten Beispiel mithilfe von Schleifen und String-Verkettung gezeigt.
Das obige ist der detaillierte Inhalt vonWie aggregiere ich Zeilen in durch Kommas getrennten Listen in Oracle?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!