Maison > base de données > tutoriel mysql > Comment puis-je concaténer efficacement les valeurs de ligne dans SQL Server sans LISTAGG ?

Comment puis-je concaténer efficacement les valeurs de ligne dans SQL Server sans LISTAGG ?

Patricia Arquette
Libérer: 2024-12-20 08:41:16
original
560 Les gens l'ont consulté

How Can I Efficiently Concatenate Row Values in SQL Server Without 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
Copier après la connexion

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

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!

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