Heim >Datenbank >MySQL-Tutorial >Wie aggregiere ich in Oracle SQL mehrere Zeilen zu einer?
Oracle SQL: Kombinieren Sie mehrere Datenzeilen in einer Zeile
Wenn ein Datensatz nach bestimmten Spalten organisiert ist, kann es erforderlich sein, mehrere Zeilen zu einer einzigen Zeile zusammenzuführen. Dies kann durch die Datenaggregationsoperationen von SQL erreicht werden.
In Oracle SQL bietet die Funktion WM_CONCAT
eine einfache Möglichkeit, mehrere Wertezeilen zu verbinden. Es ist jedoch zu beachten, dass diese Funktion in Oracle 12c und höher als nicht unterstützt markiert und entfernt wurde.
WM_CONCAT
Methode (vor Oracle 12c)
Vor Oracle 12c konnten Sie WM_CONCAT
zum Aggregieren von Werten verwenden:
<code class="language-sql">SELECT field1, WM_CONCAT(field2) FROM YourTable GROUP BY field1;</code>
Alternative: LISTAGG
(Oracle 12c und höher)
Für Oracle 12c oder höhere Datenbanken bietet LISTAGG
eine Alternative zu WM_CONCAT
. Diese Funktion bietet erweiterte Funktionalität speziell für String-Aggregationsaufgaben:
<code class="language-sql">SELECT field1, LISTAGG(field2, ',') WITHIN GROUP (ORDER BY field2) FROM YourTable GROUP BY field1;</code>
Benutzerdefinierte Implementierung
Wenn es weder WM_CONCAT
noch LISTAGG
gibt, können Sie eine benutzerdefinierte Implementierung mithilfe einer Kombination aus Unterabfragen und Zeichenfolgenmanipulationsfunktionen erstellen. Verwandte Links (z. B. oracle-base.com) bieten detaillierte Anweisungen für diese Methode.
Das obige ist der detaillierte Inhalt vonWie aggregiere ich in Oracle SQL mehrere Zeilen zu einer?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!