Maison >base de données >tutoriel mysql >Comment puis-je répliquer la fonction « string_agg » de SQL Server dans les versions antérieures à 2017 ?
string_agg
dans SQL Server antérieur à 2017La fonction string_agg
de SQL Server, introduite en 2017, simplifie la concaténation de chaînes. Cependant, pour les anciennes versions, nous avons besoin d’approches alternatives. Cet article montre une méthode pour obtenir des résultats similaires.
L'objectif est de répliquer la fonctionnalité de cette requête :
<code class="language-sql">SELECT STRING_AGG(t.id, ',') AS id FROM Table t;</code>
Cela concatène les valeurs de la colonne « id » de la table « Table », en utilisant une virgule comme séparateur.
SQL Server antérieur à 2017 manque string_agg
. La solution utilise la méthode FOR XML PATH
:
<code class="language-sql">SELECT STUFF((SELECT ',' + CAST(t.id AS VARCHAR(MAX)) FROM Table t FOR XML PATH('')), 1, 1, '');</code>
Cela construit intelligemment une chaîne séparée par des virgules. FOR XML PATH('')
génère une représentation XML, créant ainsi la liste séparée par des virgules. STUFF()
supprime ensuite la virgule de début. Cela imite efficacement le string_agg
comportement.
Cette solution de contournement fournit une solution pratique pour la concaténation de chaînes dans les anciennes versions de SQL Server, reflétant les fonctionnalités de la nouvelle fonction string_agg
.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!