Heim > Datenbank > MySQL-Tutorial > Wie kann ich mit LISTAGG Spaltenwerte aus mehreren Zeilen in Oracle SQL verketten?

Wie kann ich mit LISTAGG Spaltenwerte aus mehreren Zeilen in Oracle SQL verketten?

Patricia Arquette
Freigeben: 2025-01-23 15:11:12
Original
149 Leute haben es durchsucht

How Can I Concatenate Column Values from Multiple Rows in Oracle SQL Using LISTAGG?

Oracle SQL: Kombinieren von Spaltenwerten über mehrere Zeilen mit LISTAGG

Oracle bietet mehrere Möglichkeiten, Daten aus mehreren Zeilen in einer einzigen Zeichenfolge zu kombinieren. Die LISTAGG-Funktion ist eine besonders effektive Methode.

Stellen Sie sich vor, Sie haben zwei Tabellen: Tabelle A (mit einer Spalte PID, die die Werte A, B, C enthält) und Tabelle B (mit den Spalten PID, SEQ und Desc). Das Ziel besteht darin, die Desc-Werte aus Tabelle B, gruppiert nach PID und geordnet nach SEQ, in einer einzigen Description-Spalte im Ergebnissatz zu verketten.

So erreichen Sie dies mit LISTAGG:

<code class="language-sql">SELECT pid, LISTAGG(Desc, ' ') WITHIN GROUP (ORDER BY seq) AS description
FROM B
GROUP BY pid;</code>
Nach dem Login kopieren

Diese Abfrage verwendet LISTAGG, um die Desc-Werte für jedes eindeutige PID zu aggregieren, sie nach der SEQ-Spalte zu ordnen und ein Leerzeichen ('') als Trennzeichen zu verwenden. Die Ausgabe zeigt jedes PID mit seinen entsprechenden verketteten Desc-Werten in der Spalte description.

Um nur die in Tabelle A vorhandenen PIDs einzubeziehen, verbinden Sie diese Abfrage einfach mit Tabelle A:

<code class="language-sql">SELECT a.pid, LISTAGG(b.Desc, ' ') WITHIN GROUP (ORDER BY b.seq) AS description
FROM A a
JOIN B b ON a.pid = b.pid
GROUP BY a.pid;</code>
Nach dem Login kopieren

Wichtige Überlegung: LISTAGG funktioniert normalerweise korrekt mit VARCHAR2 Datentypen.

Das obige ist der detaillierte Inhalt vonWie kann ich mit LISTAGG Spaltenwerte aus mehreren Zeilen in Oracle SQL verketten?. 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