Maison >base de données >tutoriel mysql >Comment agréger des champs de chaîne dans SQL Server à l'aide d'un équivalent LISTAGG ?

Comment agréger des champs de chaîne dans SQL Server à l'aide d'un équivalent LISTAGG ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-22 13:12:13299parcourir

How to Aggregate String Fields in SQL Server Using a LISTAGG Equivalent?

Utilisation de la fonction STRING_AGG pour agréger les champs de chaîne dans SQL Server

Question : Comment agréger efficacement les champs de chaîne dans une requête SQL Server, similaire à la fonction LISTAGG dans d'autres systèmes de base de données ?

Solution :

SQL Server fournit la fonction STRING_AGG en remplacement équivalent de la fonction LISTAGG. Sa syntaxe est la suivante :

<code class="language-sql">STRING_AGG ( expression, separator ) WITHIN GROUP ( ORDER BY order_expression [ ASC | DESC ] )</code>
  • expression : Expression de chaîne à agréger.
  • separator : Caractère ou chaîne utilisé pour séparer les chaînes agrégées.
  • order_expression : Expression utilisée pour trier les chaînes agrégées. ASC signifie ordre croissant, DESC signifie ordre décroissant.

Exemple :

Supposons qu'il existe une table nommée MyTable contenant deux champs FieldA et FieldB. La requête suivante utilise la fonction STRING_AGG pour agréger les valeurs de FieldB dans une chaîne séparée par des virgules, regroupées par FieldA :

<code class="language-sql">SELECT FieldA, STRING_AGG(FieldB, ',') WITHIN GROUP (ORDER BY FieldB) AS AggregatedFieldB
FROM MyTable
GROUP BY FieldA
ORDER BY FieldA;</code>

Résultats attendus :

Cette requête renverra des résultats similaires au format suivant :

<code>FieldA | AggregatedFieldB
-------|-----------------
1       | Value1, Value2, Value3
2       | Value4, Value5</code>

Cela montre que la fonction STRING_AGG concatène avec succès les valeurs FieldA de chaque groupe FieldB en une seule chaîne. Notez que les valeurs de la chaîne résultante sont classées selon la clause ORDER BY FieldB.

En utilisant la fonction STRING_AGG, vous pouvez facilement implémenter l'agrégation de champs de chaîne dans SQL Server, simplifiant ainsi le traitement des données et la génération de rapports.

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