Heim >Datenbank >MySQL-Tutorial >Wie verkette ich Spaltenwerte aus mehreren Zeilen in Oracle SQL?
Oracle SQL: Kombinieren von Spaltenwerten über mehrere Zeilen hinweg
Diese Anleitung zeigt, wie Sie Spaltenwerte aus mehreren Zeilen innerhalb einer Oracle-Datenbank mithilfe von SQL verketten. Wir werden effiziente Methoden untersuchen, einschließlich Aggregatfunktionen und der LISTAGG
-Funktion.
Ein effektiver Ansatz nutzt die LISTAGG
-Funktion:
<code class="language-sql">SELECT pid, LISTAGG(Desc, ' ') WITHIN GROUP (ORDER BY seq) AS description FROM TableB GROUP BY pid;</code>
Diese Abfrage verkettet geschickt Desc
-Werte von TableB
für jedes einzelne PID
und verwendet dabei ein Leerzeichen als Trennzeichen. Die Ausgabe gruppiert Ergebnisse nach PID
und stellt für jedes eine einzelne verkettete Zeichenfolge bereit.
Um PID
Werte aus TableA
zu integrieren, ist ein Join erforderlich:
<code class="language-sql">SELECT a.PID, b.description FROM TableA a INNER JOIN (SELECT pid, LISTAGG(Desc, ' ') WITHIN GROUP (ORDER BY seq) AS description FROM TableB GROUP BY pid) b ON a.PID = b.pid;</code>
Diese verbundene Abfrage liefert das Endergebnis: Jede Zeile zeigt das PID
von TableA
neben der entsprechenden verketteten Desc
-Zeichenfolge von TableB
an.
Das obige ist der detaillierte Inhalt vonWie verkette ich Spaltenwerte aus mehreren Zeilen in Oracle SQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!