string_agg
in SQL Server vor 2017Die 2017 eingeführte string_agg
-Funktion von SQL Server vereinfacht die Zeichenfolgenverkettung. Für ältere Versionen benötigen wir jedoch alternative Ansätze. Dieser Artikel zeigt eine Methode, um ähnliche Ergebnisse zu erzielen.
Das Ziel besteht darin, die Funktionalität dieser Abfrage zu reproduzieren:
<code class="language-sql">SELECT STRING_AGG(t.id, ',') AS id FROM Table t;</code>
Dadurch werden die Werte der Spalte „id“ aus der Tabelle „Tabelle“ verkettet, wobei ein Komma als Trennzeichen verwendet wird.
SQL Server vor 2017 fehlt string_agg
. Die Lösung nutzt die FOR XML PATH
-Methode:
<code class="language-sql">SELECT STUFF((SELECT ',' + CAST(t.id AS VARCHAR(MAX)) FROM Table t FOR XML PATH('')), 1, 1, '');</code>
Dadurch wird geschickt eine durch Kommas getrennte Zeichenfolge erstellt. FOR XML PATH('')
generiert eine XML-Darstellung und erstellt so effektiv die durch Kommas getrennte Liste. STUFF()
entfernt dann das führende Komma. Dies ahmt effektiv das string_agg
Verhalten nach.
Diese Problemumgehung bietet eine praktische Lösung für die Zeichenfolgenverkettung in älteren SQL Server-Versionen und spiegelt die Funktionalität der neueren string_agg
-Funktion wider.
Das obige ist der detaillierte Inhalt vonWie kann ich die Funktion „string_agg' von SQL Server in Versionen vor 2017 replizieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!