Gruppierte String-Aggregation: LISTAGG-Funktion in SQL Server
String-Aggregation in SQL Server bietet eine Möglichkeit, mehrere String-Werte zu einem einzigen verketteten Wert zu kombinieren Zeichenfolge. Bei der Arbeit mit gruppierten Daten ist diese Funktionalität in Szenarien wie der Erstellung durch Kommas getrennter Listen unterschiedlicher Werte von entscheidender Bedeutung.
Betrachten Sie das folgende Schema, in dem wir Automodelle innerhalb jeder Automarke aggregieren möchten:
| CarMakeID | CarMake ------------------------ | 1 | SuperCars | 2 | MehCars | CarMakeID | CarModelID | CarModel ----------------------------------------- | 1 | 1 | Zoom | 2 | 1 | Wow | 3 | 1 | Awesome | 4 | 2 | Mediocrity | 5 | 2 | YoureSettling
Unsere gewünschte Ausgabe ist:
| CarMakeID | CarMake | CarModels --------------------------------------------- | 1 | SuperCars | Zoom, Wow, Awesome | 2 | MehCars | Mediocrity, YoureSettling
Um diese Aggregation zu erreichen, bietet SQL Server mehrere Optionen. Der empfohlene Ansatz für die Zeichenfolgenverkettung besteht jedoch darin, die Funktion STRING_AGG zu verwenden.
Die folgende überarbeitete Abfrage verwendet die Funktion STRING_AGG anstelle von AGG aus der ursprünglichen Abfrage:
SELECT *, (SELECT STRING_AGG(CarModel, ', ') AS CarModels FROM CarModels model WHERE model.CarMakeID = make.CarMakeID GROUP BY make.CarMakeID) FROM CarMakes make
Die Funktion STRING_AGG ist eine integrierte Aggregatfunktion, die einen Spaltenwert annimmt und alle unterschiedlichen Werte zu einer einzigen Zeichenfolge zusammenfasst. Mit dem optionalen SEPARATOR-Parameter können wir das Trennzeichen zwischen Werten angeben. In diesem Fall haben wir ein Komma gewählt.
Diese Abfrage erzeugt die gewünschte Ausgabe, wobei die CarModels-Spalte eine durch Kommas getrennte Liste von Autos enthält Modelle für jede Marke.
Das obige ist der detaillierte Inhalt vonWie kann die STRING_AGG-Funktion von SQL Server für die gruppierte String-Aggregation verwendet werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!