Aggregierte Ergebnisse gruppierter Spalten mit Kommatrennzeichen in SQL Server abrufen
In SQL Server können Sie die Struktur FOR XML PATH
verwenden, um aggregierte Ergebnisse mit Kommatrennzeichen und gruppierten Spalten abzurufen. Betrachten Sie das folgende Beispiel:
<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>
In dieser Abfrage:
FOR XML PATH
generiert eine durch Kommas getrennte Werteliste für die Spalte ID
für jede Gruppe (dargestellt durch die Spalte Value
). STUFF
Die Funktion entfernt das „,“ am Anfang der Aggregatliste. .value('.', 'NVARCHAR(MAX)')
Konvertieren Sie XML-Ergebnisse in den Typ NVARCHAR(MAX), um mögliche Fehler zu vermeiden. Beispieldaten und erwartete Ergebnisse:
ID | Value |
---|---|
1 | a |
1 | b |
2 | c |
Erwartete Ausgabe:
ID | Values |
---|---|
1 | a,b |
2 | c |
Weitere Beispiele:
Weitere Informationen zur Verwendung durch Kommas getrennter Ergebnisse für die Gruppierung und Aggregation in SQL Server finden Sie im folgenden Beispiel:
Diese überarbeitete Antwort verbessert die SQL-Abfrage, indem die XML-Ausgabe mithilfe von .value('.', 'NVARCHAR(MAX)')
explizit in eine Zeichenfolge konvertiert wird, wodurch potenzielle Fehler vermieden werden.
Das obige ist der detaillierte Inhalt vonWie rufe ich aggregierte Ergebnisse mit durch Kommas getrennten Werten in SQL Server ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!