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
Libérer: 2025-01-22 13:12:13
original
279 Les gens l'ont consulté

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

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

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!

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