Heim >Datenbank >MySQL-Tutorial >Wie verkette ich Spaltenwerte aus mehreren Zeilen in Oracle SQL?

Wie verkette ich Spaltenwerte aus mehreren Zeilen in Oracle SQL?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-01-23 15:01:121029Durchsuche

How to Concatenate Column Values from Multiple Rows 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!

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