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>
Um die folgenden erwarteten Ergebnisse zu erzielen:
<code>A 1 2 B 1 2</code>
Oracle bietet spezifische SQL-Funktionen, um diesen Bedarf zu erfüllen:
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>
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>
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:
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!