Heim > Datenbank > MySQL-Tutorial > Wie verkettet man eindeutige Werte mithilfe von GROUP BY von SQL Server zu einer durch Kommas getrennten Zeichenfolge?

Wie verkettet man eindeutige Werte mithilfe von GROUP BY von SQL Server zu einer durch Kommas getrennten Zeichenfolge?

Susan Sarandon
Freigeben: 2025-01-10 17:47:42
Original
157 Leute haben es durchsucht

How to Concatenate Unique Values into a Comma-Separated String Using SQL Server's GROUP BY?

Eindeutige Werte in einer durch Kommas getrennten Liste mit GROUP BY von SQL Server zusammenfassen

Herausforderung:
Bei einer Tabelle mit doppelten Einträgen besteht das Ziel darin, Daten nach einer bestimmten Spalte zu gruppieren und eindeutige Werte aus einer anderen Spalte in einer einzigen, durch Kommas getrennten Zeichenfolge zusammenzufassen.

Beispieldaten:

Die folgende Tabelle veranschaulicht den ursprünglichen Datensatz:

ID ReportId Email
1 1 [email protected]
2 2 [email protected]
3 1 [email protected]
4 3 [email protected]
5 3 [email protected]

Zielergebnis:

Das gewünschte Ergebnis ist eine Tabelle mit konsolidierten E-Mail-Adressen:

ReportId Email
1 [email protected], [email protected]
2 [email protected]
3 [email protected], [email protected]

Lösung mit GROUP BY und STUFF:

Die Funktion STUFF wird verwendet, um Zeichenfolgen effizient zu verketten und führende Zeichen zu entfernen. Die Lösung lautet wie folgt:

<code class="language-sql">SELECT ReportId, Email = 
    STUFF((SELECT ', ' + Email
           FROM your_table b 
           WHERE b.ReportId = a.ReportId 
          FOR XML PATH('')), 1, 2, '')
FROM your_table a
GROUP BY ReportId;</code>
Nach dem Login kopieren

Detaillierte Erklärung:

Die Kernlogik umfasst eine Unterabfrage innerhalb der Funktion STUFF. Diese Unterabfrage durchläuft alle Zeilen, die dasselbe ReportId wie die aktuelle Zeile der äußeren Abfrage haben. Für jede übereinstimmende Zeile werden ein Komma und der Wert Email an die akkumulierende Zeichenfolge angehängt. Die äußere Abfrage verwendet dann GROUP BY, um diese verketteten E-Mail-Zeichenfolgen für jedes eindeutige ReportId zusammenzufassen. Die Funktion STUFF entfernt das anfängliche Komma und Leerzeichen.

Das obige ist der detaillierte Inhalt vonWie verkettet man eindeutige Werte mithilfe von GROUP BY von SQL Server zu einer durch Kommas getrennten Zeichenfolge?. 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