Heim >Datenbank >MySQL-Tutorial >Wie kann ich Zeichenfolgen in SQL Server wie LISTAGG von Oracle aggregieren?
Listenaggregation in SQL Server
SQL Server bietet eine Reihe leistungsstarker Funktionen für die Datenaggregation, einschließlich der Möglichkeit, Werte aus mehreren Zeilen in einer einzigen durch Kommas getrennten Zeichenfolge zu verketten. Die Beherrschung dieser Aggregationsmethode ist für eine Vielzahl von Datenaggregations- und Präsentationsaufgaben von entscheidender Bedeutung.
Um die gleiche Funktionalität wie die LISTAGG-Funktion von Oracle in SQL Server zu erreichen, können Sie die STRING_AGG-Funktion verwenden. Diese Funktion wurde in SQL Server 2017 eingeführt und ermöglicht die Verkettung von Zeichenfolgen innerhalb einer Gruppe.
Beispiel
Betrachten Sie den folgenden Datensatz:
字段 A | 字段 B |
---|---|
1 | A |
1 | B |
2 | A |
Abfrage:
<code class="language-sql">SELECT FieldA, STRING_AGG(FieldB, ',') WITHIN GROUP (ORDER BY FieldB) AS FieldBs FROM TableName GROUP BY FieldA ORDER BY FieldA;</code>
Ergebnis:
字段 A | FieldBs |
---|---|
1 | A, B |
2 | A |
Die STRING_AGG-Funktion mit der WITHIN GROUP-Klausel stellt sicher, dass Werte innerhalb jeder nach FieldA gruppierten Gruppe verkettet werden. Die ORDER BY-Klausel in einem Aggregat gibt die Reihenfolge an, in der Werte aufgelistet werden sollen.
Für SQL Server-Versionen vor 2017 können Sie eine Kombination aus CTE (Common Table Expression) und STUFF-Funktionen verwenden, um das gleiche Ergebnis zu erzielen. Aus Gründen der Einfachheit und Kompatibilität mit neueren Versionen ist jedoch die Funktion STRING_AGG die empfohlene Lösung.
Das obige ist der detaillierte Inhalt vonWie kann ich Zeichenfolgen in SQL Server wie LISTAGG von Oracle aggregieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!