Heim >Datenbank >MySQL-Tutorial >Wie aggregiere ich in Oracle SQL mehrere Zeilen zu einer?

Wie aggregiere ich in Oracle SQL mehrere Zeilen zu einer?

Susan Sarandon
Susan SarandonOriginal
2025-01-15 18:38:46784Durchsuche

How to Aggregate Multiple Rows into One in Oracle SQL?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn