Maison >base de données >tutoriel mysql >Comment puis-je concaténer efficacement les valeurs de ligne dans SQL Server sans LISTAGG ?
Concaténation des valeurs de ligne dans SQL Server : une alternative à LISTAGG
L'un des défis courants dans SQL est l'agrégation des valeurs de chaîne sur les lignes. Dans ce contexte, LISTAGG est une fonction pratique prise en charge par de nombreux systèmes de bases de données. Cependant, dans SQL Server, il n'existe pas d'équivalent direct à LISTAGG.
Pour obtenir des fonctionnalités similaires dans SQL Server, une approche consiste à utiliser une sous-requête dans la requête principale. Cependant, l'approche traditionnelle présentée ci-dessous présente un inconvénient potentiel :
SELECT *, (SELECT AGG(CarModel) FROM CarModels model WHERE model.CarMakeID = make.CarMakeID GROUP BY make.CarMakeID) as CarMakes FROM CarMakes make
Dans cette requête, AGG peut être remplacé par une combinaison de fonctions STRING_AGG et GROUP_CONCAT :
SELECT *, (SELECT STRING_AGG(CarModel, ', ') FROM CarModels model WHERE model.CarMakeID = make.CarMakeID GROUP BY make.CarMakeID) as CarMakes FROM CarMakes make
Cette requête modifiée fournit une solution robuste pour concaténer les valeurs de lignes dans SQL Server. Cependant, il est important de noter que les caractéristiques de performance de cette approche peuvent varier en fonction de la taille et de la complexité de l'ensemble de données.
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!