Heim >Datenbank >MySQL-Tutorial >Wie können LISTAGG oder WM_CONCAT mehrere Datenbankzeilen in einer einzigen durch Kommas getrennten Liste kombinieren?
Zusammenfassen mehrerer Datenbankzeilen in einer einzigen durch Kommas getrennten Zeichenfolge
Datenbankaufgaben erfordern oft die Konsolidierung mehrerer Zeilen in einer einzigen, durch Kommas getrennten Liste. Oracle-Datenbanken bieten hierfür effiziente Lösungen mit den Funktionen LISTAGG
oder WM_CONCAT
. Während WM_CONCAT
veraltet ist, bietet LISTAGG
(verfügbar ab Oracle 11.2) überlegene Flexibilität und ist der empfohlene Ansatz. Beide Funktionen erzielen das gleiche Grundergebnis: das Kombinieren von Zeilen zu einer durch Trennzeichen getrennten Zeichenfolge.
Stellen Sie sich eine Abfrage zum Abrufen von Ländernamen vor:
<code class="language-sql">SELECT * FROM countries;</code>
Um eine durch Kommas getrennte Liste dieser Namen zu erstellen, verwenden Sie LISTAGG
:
<code class="language-sql">SELECT LISTAGG(country_name, ', ') WITHIN GROUP (ORDER BY country_name) FROM countries;</code>
Dies gibt eine einzelne Zeile zurück, die alle Ländernamen enthält, sauber durch Kommas getrennt und alphabetisch geordnet.
Für Datenbanken, die das veraltete WM_CONCAT
unterstützen, wäre das Äquivalent:
<code class="language-sql">SELECT WM_CONCAT(country_name) FROM countries;</code>
Während beide eine ähnliche Leistung erbringen, LISTAGG
bietet sie Vorteile. Es ermöglicht die Anpassung des Trennzeichens und bietet Kontrolle über die Reihenfolge der aggregierten Werte. Detaillierte LISTAGG
Funktionsparameter
Das obige ist der detaillierte Inhalt vonWie können LISTAGG oder WM_CONCAT mehrere Datenbankzeilen in einer einzigen durch Kommas getrennten Liste kombinieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!