Heim > Datenbank > MySQL-Tutorial > Wie verkette ich mehrere Zeilen in einer einzigen durch Kommas getrennten Spalte in SQL Server und Oracle?

Wie verkette ich mehrere Zeilen in einer einzigen durch Kommas getrennten Spalte in SQL Server und Oracle?

Patricia Arquette
Freigeben: 2025-01-21 06:46:09
Original
922 Leute haben es durchsucht

How to Concatenate Multiple Rows into a Single Comma-Delimited Column in SQL Server and Oracle?

Kombinieren mehrerer Zeilen in einer einzigen durch Kommas getrennten Spalte (SQL Server und Oracle)

Diese Anleitung zeigt, wie Sie mehrere Zeilen basierend auf einem gemeinsamen Feld (z. B. TicketID) zusammenfassen und ihre entsprechenden Werte (z. B. Person) in einer einzigen durch Kommas getrennten Spalte (z. B. People) verketten. Wir werden Lösungen sowohl für SQL Server als auch für Oracle erkunden.

SQL Server-Lösung

SQL Server nutzt die Funktion STUFF für die effiziente Verkettung und Einfügung von Zeichenfolgen. Das folgende Beispiel verdeutlicht dies:

SELECT t.TicketID,
       STUFF(
            ISNULL((
                SELECT ', ' + x.Person
                FROM @Tickets x
                WHERE x.TicketID = t.TicketID
                GROUP BY x.Person
                FOR XML PATH (''), TYPE
            ).value('.','VARCHAR(max)'), ''), 1, 2, ''
        ) [No Preceding Comma],
       ISNULL((
            SELECT ', ' + x.Person
            FROM @Tickets x
            WHERE x.TicketID = t.TicketID
            GROUP BY x.Person
            FOR XML PATH (''), TYPE
        ).value('.','VARCHAR(max)'), '') [Preceding Comma If Not Empty]
FROM @Tickets t
GROUP BY t.TicketID
Nach dem Login kopieren

Oracle-Lösung

Oracle bietet die Funktion LISTAGG, die speziell für die Verkettung von Spaltenwerten mit einem benutzerdefinierten Trennzeichen entwickelt wurde. So wird es verwendet:

SELECT TicketID,
       LISTAGG(Person, ',') WITHIN GROUP (ORDER BY Person) AS People
FROM @Tickets
GROUP BY TicketID
Nach dem Login kopieren

Beide Methoden führen effektiv mehrere Zeilen in einer einzigen Spalte zusammen und trennen die verketteten Werte durch Kommas. Die Wahl der Funktion hängt von Ihrem Datenbanksystem (SQL Server oder Oracle) ab.

Das obige ist der detaillierte Inhalt vonWie verkette ich mehrere Zeilen in einer einzigen durch Kommas getrennten Spalte in SQL Server und Oracle?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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