SQL-Gruppierung und Verkettung mit Komma-Trennzeichen
Diese Anleitung zeigt, wie Sie eine SQL-Abfrage schreiben, die Daten gruppiert und aggregierte Werte mithilfe von Kommatrennzeichen verkettet. Stellen Sie sich einen Tisch wie diesen vor:
<code>| ID | Value | |-----|-------| | 1 | a | | 1 | b | | 2 | c |</code>
Das Ziel besteht darin, eine Ergebnismenge zu generieren, in der Werte für dieselbe ID in einer einzigen durch Kommas getrennten Zeichenfolge kombiniert werden:
<code>| ID | Value | |-----|-------| | 1 | a,b | | 2 | c |</code>
Lösung mit FOR XML PATH:
Das FOR XML PATH
-Konstrukt bietet eine effiziente Möglichkeit, dies zu erreichen:
<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>
Die Funktion STUFF
entfernt das durch die SELECT
-Anweisung hinzugefügte führende Komma und Leerzeichen. Dieser Ansatz wird im Allgemeinen aufgrund seiner Leistung und Lesbarkeit bevorzugt.
Weiterführende Literatur:
Weitere fortgeschrittene Szenarien und alternative Techniken finden Sie in diesen Ressourcen:
FOR XML PATH
und verwandten Funktionen finden Sie in der offiziellen Microsoft-Dokumentation.Diese überarbeitete Antwort verbessert die Klarheit, bietet eine prägnantere Erklärung und bietet hilfreiche Links zum weiteren Lernen. Das Bild bleibt an seiner ursprünglichen Position.
Das obige ist der detaillierte Inhalt vonWie gruppiert man Daten und verkettet Werte mit Komma-Trennzeichen in SQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!