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

Wie aggregiere ich in Oracle SQL mehrere Zeilen zu einer einzigen Zeile?

Linda Hamilton
Freigeben: 2025-01-15 18:42:43
Original
642 Leute haben es durchsucht

How to Aggregate Multiple Rows into a Single Row in Oracle SQL?

Oracle SQL führt mehrere Zeilen zu einer einzigen Zeile zusammen

In einer Oracle-Datenbank müssen Sie möglicherweise mehrere Zeilen in einer Tabelle zu einer Zeile zusammenführen und so eine Tabellenstruktur mit mehreren Spalten erstellen. Angenommen, es gibt eine Tabelle mit dem folgenden Schema:

<code>A 1
A 2
B 1
B 2</code>
Nach dem Login kopieren

Um die folgenden erwarteten Ergebnisse zu erzielen:

<code>A 1 2
B 1 2</code>
Nach dem Login kopieren

Oracle bietet spezifische SQL-Funktionen, um diesen Bedarf zu erfüllen:

WM_CONCAT-Funktion (veraltet)

Warnung: Die WM_CONCAT-Funktion ist jetzt veraltet und wurde in Oracle 12c und höher entfernt. Die Verwendung in späteren Versionen kann zu unvorhersehbaren Ergebnissen führen.

<code class="language-sql">SELECT field1, WM_CONCAT(field2)
FROM YourTable
GROUP BY field2;</code>
Nach dem Login kopieren

LISTAGG-Funktion

Für neuere Oracle-Versionen empfiehlt sich die Verwendung der LISTAGG-Funktion:

<code class="language-sql">SELECT field1, LISTAGG(field2, ',') WITHIN GROUP (ORDER BY field2)
FROM YourTable
GROUP BY field1;</code>
Nach dem Login kopieren

Benutzerdefinierte Aggregation

Wenn weder die WM_CONCAT- noch die LISTAGG-Funktion in Ihrer Oracle-Version verfügbar sind, können Sie benutzerdefinierte Aggregationen implementieren, indem Sie die folgenden Schritte ausführen:

  1. Erstellen Sie eine temporäre Tabelle zum Speichern aggregierter Daten.
  2. Fügen Sie die erforderlichen Daten mithilfe einer Schleife oder Rekursion in die temporäre Tabelle ein.
  3. Aggregierte Daten aus einer temporären Tabelle abrufen.

Bitte beachten Sie, dass benutzerdefinierte Aggregationen möglicherweise komplexer und rechenintensiver sind als die Verwendung vordefinierter Funktionen.

Das obige ist der detaillierte Inhalt vonWie aggregiere ich in Oracle SQL mehrere Zeilen zu einer einzigen Zeile?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage