Maison > base de données > tutoriel mysql > Comment STUFF et FOR XML PATH concatènent-ils des données dans SQL Server ?

Comment STUFF et FOR XML PATH concatènent-ils des données dans SQL Server ?

Susan Sarandon
Libérer: 2025-01-22 22:49:11
original
145 Les gens l'ont consulté

How Do STUFF and FOR XML PATH Concatenate Data in SQL Server?

La combinaison astucieuse de STUFF et FOR XML PATH dans SQL Server

Dans SQL Server, la combinaison des fonctions STUFF et FOR XML PATH peut connecter et traiter les données efficacement. Voyons comment ces deux fonctions fonctionnent ensemble pour obtenir le résultat souhaité.

Le rôle de FOR XML PATH

FOR XML PATH Convertit les résultats de la requête en une chaîne d'éléments XML. L'ajout d'une chaîne vide comme argument ('') à FOR XML PATH produit une liste de valeurs séparées par des virgules. Par exemple :

<code class="language-sql">SELECT ',' + name 
FROM temp1
FOR XML PATH ('')</code>
Copier après la connexion

Le résultat est :

<code>,aaa,bbb,ccc,ddd,eee</code>
Copier après la connexion

Le rôle de STUFF

La fonction STUFF permet d'insérer ou de remplacer des caractères dans une chaîne. En spécifiant les paramètres de position de départ et de longueur sur 1, vous supprimez effectivement le premier caractère de la chaîne :

<code class="language-sql">STUFF(
    (SELECT ',' + NAME
    FROM temp1
    FOR XML PATH('')
    ), 1, 1, ''
)</code>
Copier après la connexion

Cela supprimera la virgule au début de la liste de noms :

<code>aaa,bbb,ccc,ddd,eee</code>
Copier après la connexion

Connexion basée sur l'ID

Enfin, utilisez Group By pour rejoindre la liste modifiée avec la colonne Id pour agréger et renvoyer le résultat souhaité :

<code class="language-sql">SELECT ID, abc = STUFF(
    (SELECT ',' + name 
    FROM temp1 t1
    WHERE t1.id = t2.id
    FOR XML PATH (''))
    , 1, 1, '') 
FROM temp1 t2
GROUP BY id;</code>
Copier après la connexion

Ce code explique succinctement comment STUFF et FOR XML PATH fonctionnent ensemble dans SQL Server pour produire le résultat souhaité.

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