Effizientes Kombinieren mehrerer Zeilen zu einer einzigen durch Kommas getrennten Zeichenfolge in SQL Server
SQL Server erfordert häufig die Aggregation von Daten aus mehreren Zeilen in einer einzigen, durch Kommas getrennten Zeichenfolge, insbesondere beim Gruppieren von Ergebnissen. Dies ist eine häufige Aufgabe für die Berichterstattung und Datenpräsentation. Eine leistungsstarke Methode, um dies zu erreichen, nutzt das FOR XML PATH
-Konstrukt.
Sehen wir uns eine Tabelle mit den Spalten „ID“ und „Wert“ an:
ID | Value |
---|---|
1 | a |
1 | b |
2 | c |
Die folgende SQL-Abfrage verkettet effizient Value
-Einträge für jedes eindeutige ID
in einer durch Kommas getrennten Zeichenfolge:
<code class="language-sql">SELECT ID, STUFF((SELECT ', ' + Value FROM YourTable t2 WHERE t1.ID = t2.ID FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1, 2, '') AS Values FROM YourTable t1 GROUP BY ID;</code>
Diese Abfrage verwendet eine Unterabfrage mit FOR XML PATH('')
, um die Werte zu verketten. Die Methode .value('.', 'NVARCHAR(MAX)')
wandelt das XML-Ergebnis in einen String um. STUFF
entfernt das führende Komma und das Leerzeichen.
Die Ausgabe wird sein:
ID | Values |
---|---|
1 | a, b |
2 | c |
Dieser Ansatz bietet eine saubere und effiziente Möglichkeit, durch Kommas getrennte aggregierte Werte in SQL Server zu generieren und so die Lesbarkeit und Benutzerfreundlichkeit Ihrer Daten zu verbessern.
Das obige ist der detaillierte Inhalt vonWie verkette ich mehrere Zeilen in einer einzigen durch Kommas getrennten Zeichenfolge in SQL Server?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!