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

Wie verkette ich mehrere SQL-Zeilen in einer einzigen durch Kommas getrennten Spalte?

Patricia Arquette
Patricia ArquetteOriginal
2025-01-21 06:51:121034Durchsuche

How to Concatenate Multiple SQL Rows into a Single Comma-Delimited Column?

SQL-Techniken zum Kombinieren mehrerer Zeilen in einem einzigen durch Kommas getrennten Feld

Das Zusammenfassen mehrerer Datenzeilen in einer einzigen Spalte, getrennt durch Kommas, ist eine häufige Anforderung bei der Datenmanipulation. Dieser Leitfaden zeigt, wie diese Verkettung mithilfe von SQL erreicht wird, wobei der Schwerpunkt auf Microsoft SQL Server 2005 und höher liegt.

Hier ist eine SQL Server-Lösung:

<code class="language-sql">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, '') AS ConcatenatedPersons
  FROM @Tickets t
GROUP BY t.TicketID</code>

Dieser Ansatz verwendet die Funktion STUFF, um ein führendes Komma effizient aus der verketteten Zeichenfolge zu entfernen. Die verschachtelte Abfrage nutzt FOR XML PATH, um eine durch Kommas getrennte Liste aus den einzelnen Person-Werten zu erstellen, die jedem TicketID zugeordnet sind. Die Funktion ISNULL behandelt Fälle, in denen einer bestimmten Ticket-ID keine Personen zugeordnet sind. Das Ergebnis ist eine einzelne Spalte (ConcatenatedPersons), die die durch Kommas getrennte Personenliste für jedes Ticket enthält. Diese Methode bietet eine saubere und effiziente Möglichkeit, die gewünschte Verkettung innerhalb von SQL Server zu erreichen. Passen Sie diese Technik an Ihre spezifischen Tabellen- und Spaltennamen an, um optimale Ergebnisse zu erzielen.

Das obige ist der detaillierte Inhalt vonWie verkette ich mehrere SQL-Zeilen in einer einzigen durch Kommas getrennten Spalte?. 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