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
Libérer: 2025-01-25 02:08:08
original
753 Les gens l'ont consulté

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

Convertir en :

<code>id          Column
1          A:4, B:8
2          C:9</code>
Copier après la connexion

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!

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal