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 ?
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 :
<code class="language-sql">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;</code>
Dans cette requête :
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!