Maison >base de données >tutoriel mysql >Comment concaténer les chaînes dans un groupe SQL Server en utilisant le chemin XML?

Comment concaténer les chaînes dans un groupe SQL Server en utilisant le chemin XML?

DDD
DDDoriginal
2025-01-25 02:08:08725parcourir

How to Concatenate Strings Within a SQL Server GROUP BY Using FOR XML PATH?

La combinaison intelligente de la concaténation de chaînes SQL Server et de GROUP BY

Dans SQL Server, il existe un moyen astucieux de combiner FOR XML et PATH pour concaténer des chaînes dans une opération GROUP BY.

Le but est de convertir les données suivantes :

<code>id       Name       Value
1          A          4
1          B          8
2          C          9</code>

Convertir en :

<code>id          Column
1          A:4, B:8
2          C:9</code>

Les étapes sont les suivantes :

  1. Créer une table temporaire : Créez une table temporaire avec le même schéma que la table d'origine.

  2. Insérer des exemples de données : Insérez des exemples de données dans une table temporaire.

  3. Concaténer des chaînes à l'aide de FOR XML et PATH : Concaténer des chaînes dans chaque groupe d'ID à l'aide des méthodes FOR XML et PATH. Cela comprend :

    • Sélectionnez les colonnes ID et Name.
    • Utilisez une sous-requête pour récupérer Name et Value pour chaque enregistrement du même groupe d'ID.
    • Joignez les colonnes , et Name à l'aide d'un délimiteur (par exemple, Value).
    • Utilisez FOR XML PATH('') pour convertir le résultat en XML.
    • Extraire les chaînes concaténées de XML à l'aide des méthodes TYPE et value().
  4. Regroupez par ID et utilisez STUFF : pour regrouper les résultats par ID. Utilisez la fonction STUFF pour supprimer les délimiteurs principaux (par exemple, les virgules) des chaînes de connexion.

  5. Sélectionner le résultat final : Sélectionne ID et les chaînes Name et Value concaténées en tant que colonnes Column.

  6. Supprimer la table temporaire : Supprimez la table temporaire une fois l'opération terminée.

Cette approche exploite la puissance de FOR XML et PATH pour concaténer efficacement des chaînes dans une opération GROUP BY sans utiliser de curseurs, de boucles ou de fonctions définies par l'utilisateur.

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!

Déclaration:
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