Maison > base de données > tutoriel mysql > Comment la fonction STRING_AGG de SQL Server peut-elle être utilisée pour l'agrégation de chaînes groupées ?

Comment la fonction STRING_AGG de SQL Server peut-elle être utilisée pour l'agrégation de chaînes groupées ?

Linda Hamilton
Libérer: 2024-12-23 20:38:15
original
836 Les gens l'ont consulté

How Can SQL Server's STRING_AGG Function Be Used for Grouped String Aggregation?

Agrégation de chaînes groupées : fonction LISTAGG dans SQL Server

L'agrégation de chaînes dans SQL Server fournit un moyen de combiner plusieurs valeurs de chaîne en une seule concaténée chaîne. Lorsque vous travaillez avec des données groupées, cette fonctionnalité est cruciale dans des scénarios tels que la génération de listes de valeurs distinctes séparées par des virgules.

Considérez le schéma suivant, dans lequel nous souhaitons regrouper des modèles de voitures au sein de chaque marque de voiture :

| CarMakeID | CarMake
------------------------
| 1 | SuperCars
| 2 | MehCars

| CarMakeID | CarModelID | CarModel
-----------------------------------------
| 1 | 1 | Zoom
| 2 | 1 | Wow
| 3 | 1 | Awesome
| 4 | 2 | Mediocrity
| 5 | 2 | YoureSettling
Copier après la connexion

Le résultat souhaité est :

| CarMakeID | CarMake | CarModels
---------------------------------------------
| 1 | SuperCars | Zoom, Wow, Awesome
| 2 | MehCars | Mediocrity, YoureSettling
Copier après la connexion

Pour réaliser cette agrégation, SQL Server propose plusieurs options. Cependant, l'approche recommandée pour la concaténation de chaînes consiste à utiliser la fonction STRING_AGG.

La requête révisée suivante utilise la fonction STRING_AGG à la place de AGG de la requête initiale :

SELECT *, 
(SELECT STRING_AGG(CarModel, ', ') AS CarModels
  FROM CarModels model
  WHERE model.CarMakeID = make.CarMakeID
  GROUP BY make.CarMakeID)
FROM CarMakes make
Copier après la connexion

La fonction STRING_AGG est une fonction d'agrégation intégrée qui prend une valeur de colonne et concatène toutes les valeurs distinctes en une seule chaîne. Le paramètre facultatif SEPARATOR nous permet de spécifier le délimiteur entre les valeurs, et dans ce cas, nous avons choisi une virgule.

Cette requête produira la sortie souhaitée, où la colonne CarModels contient une liste de voitures séparées par des virgules. modèles pour chaque marque.

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