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 ?

Comment puis-je répliquer la fonction « string_agg » de SQL Server dans les versions antérieures à 2017 ?

Patricia Arquette
Libérer: 2025-01-20 19:50:09
original
560 Les gens l'ont consulté

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

Émulation string_agg dans SQL Server antérieur à 2017

La 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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal