Heim > Datenbank > MySQL-Tutorial > Wie kann ich die Funktion „string_agg' von SQL Server in Versionen vor 2017 replizieren?

Wie kann ich die Funktion „string_agg' von SQL Server in Versionen vor 2017 replizieren?

Patricia Arquette
Freigeben: 2025-01-20 19:50:09
Original
507 Leute haben es durchsucht

How Can I Replicate SQL Server's `string_agg` Function in Versions Before 2017?

Emulierung string_agg in SQL Server vor 2017

Die 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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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_aggVerhalten 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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage