Heim >Datenbank >MySQL-Tutorial >Wie verkette ich E-Mails nach Berichts-ID mithilfe der GROUP BY-Klausel von SQL Server?
SQL Server: Verketten von E-Mails innerhalb von Berichts-ID-Gruppen mithilfe von GROUP BY
In SQL Server ist das effiziente Gruppieren von Daten und das Kombinieren verwandter Werte in einzelnen Zeichenfolgen eine häufige Aufgabe. Die GROUP BY
-Klausel gruppiert Zeilen basierend auf angegebenen Spalten und ermöglicht so die Verwendung von Aggregatfunktionen für Datenmanipulation und Berechnungen.
E-Mails nach Berichts-ID kombinieren
Stellen Sie sich eine Tabelle vor, die so aufgebaut ist:
<code>ID ReportId Email 1 1 [email protected] 2 2 [email protected] 3 1 [email protected] 4 3 [email protected] 5 3 [email protected]</code>
Das Ziel besteht darin, Zeilen nach ReportId
zu gruppieren und entsprechende E-Mails in durch Kommas getrennte Zeichenfolgen zu verketten. Die gewünschte Ausgabe:
<code>ReportId Email 1 [email protected], [email protected] 2 [email protected] 3 [email protected], [email protected]</code>
Nutzung der STUFF()-Funktion
Dies wird effektiv mit der Funktion STUFF()
innerhalb einer Unterabfrage erreicht:
<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>
Detaillierte Erklärung:
ReportId
aus und stellt jeder E-Mail ein Komma und ein Leerzeichen voran.FOR XML PATH('')
wandelt die Unterabfrageergebnisse in eine einzelne XML-Zeichenfolge um.STUFF()
entfernt das führende Komma und das Leerzeichen aus der XML-Zeichenfolge, wodurch die gewünschte durch Kommas getrennte E-Mail-Liste entsteht.Weitere Überlegungen:
SUM()
, AVG()
) können mit GROUP BY
für verschiedene Berechnungen für gruppierte Daten verwendet werden.STUFF()
ist eine äußerst vielseitige Funktion für verschiedene String-Manipulationsoperationen.Das obige ist der detaillierte Inhalt vonWie verkette ich E-Mails nach Berichts-ID mithilfe der GROUP BY-Klausel von SQL Server?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!