Maison > base de données > tutoriel mysql > Comment récupérer des résultats agrégés avec des valeurs séparées par des virgules dans SQL Server ?

Comment récupérer des résultats agrégés avec des valeurs séparées par des virgules dans SQL Server ?

DDD
Libérer: 2025-01-07 20:07:39
original
665 Les gens l'ont consulté

How to Retrieve Aggregated Results with Comma-Separated Values in SQL Server?

Récupérer les résultats agrégés des colonnes groupées à l'aide d'un délimiteur par virgule dans SQL Server

Dans SQL Server, vous pouvez utiliser la structure FOR XML PATH pour récupérer des résultats agrégés avec des délimiteurs par virgules et des colonnes groupées. Prenons l'exemple suivant :

SELECT 
    ID, 
    STUFF((SELECT ', ' + Value 
           FROM YourTable t2 WHERE t1.ID = t2.ID 
           FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1, 2, '') AS Values
FROM YourTable t1
GROUP BY ID;
Copier après la connexion

Dans cette requête :

    La structure
  • FOR XML PATH génère une liste de valeurs séparées par des virgules pour la colonne ID de chaque groupe (représentée par la colonne Value).
  • STUFF La fonction supprime le ', ' au début de la liste agrégée.
  • .value('.', 'NVARCHAR(MAX)') Convertissez les résultats XML en type NVARCHAR(MAX) pour éviter les erreurs potentielles.

Exemples de données et résultats attendus :

ID Value
1 a
1 b
2 c

Résultat attendu :

ID Values
1 a,b
2 c

Autres exemples :

Pour plus de références sur l'utilisation de résultats séparés par des virgules pour le regroupement et l'agrégation dans SQL Server, considérons l'exemple suivant :

Cette réponse révisée améliore la requête SQL en convertissant explicitement la sortie XML en chaîne à l'aide de .value('.', 'NVARCHAR(MAX)'), évitant ainsi les erreurs potentielles. L'explication reste également claire et concise.

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 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