Concaténer efficacement des chaînes dans des groupes SQL Server
Cet article aborde le problème de la consolidation des données de chaîne au sein de groupes dans SQL Server. Imaginez que vous ayez des données structurées comme ceci :
<code class="language-sql">id | Name | Value ---|-----|------ 1 | A | 4 1 | B | 8 2 | C | 9</code>
Le but est de le transformer en :
<code class="language-sql">id | Column ---|-------- 1 | A:4, B:8 2 | C:9</code>
Bien que les méthodes traditionnelles comme les curseurs ou les boucles soient possibles, elles peuvent être inefficaces. Une approche supérieure, disponible dans SQL Server 2005 et versions ultérieures, utilise FOR XML PATH
et STUFF
.
Cette méthode fonctionne comme suit :
#YourTable
) est créée pour contenir les exemples de données.STUFF
et FOR XML PATH
pour effectuer la concaténation. FOR XML PATH
génère du XML, regroupant efficacement les chaînes pour chaque ID. STUFF
convertit ensuite élégamment ce XML en une chaîne séparée par des virgules.id
pour obtenir l'agrégation souhaitée.Il en résulte une requête concise et hautement performante, évitant la surcharge des processus itératifs. La sortie correspond au format de chaîne souhaité séparé par des virgules.
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!