Maison > base de données > tutoriel mysql > Comment concaténer les résultats d'une requête SQL en une seule chaîne dans SQL Server ?

Comment concaténer les résultats d'une requête SQL en une seule chaîne dans SQL Server ?

Barbara Streisand
Libérer: 2024-12-27 22:09:10
original
463 Les gens l'ont consulté

How to Concatenate SQL Query Results into a Single String in SQL Server?

Concaténation des résultats de requête SQL en une seule chaîne

Dans SQL Server, la tâche consistant à combiner plusieurs résultats de requête en une seule chaîne peut être réalisée en utilisant diverses techniques.

POUR XML PATH et STUFF

Pour SQL Server 2005 et versions ultérieures, la combinaison FOR XML PATH et STUFF offre une approche simple :

DECLARE @CodeNameString varchar(100)

SELECT 
   @CodeNameString = STUFF( (SELECT ',' + CodeName 
                             FROM dbo.AccountCodes 
                             ORDER BY Sort
                             FOR XML PATH('')), 
                            1, 1, '')
Copier après la connexion

Cette méthode concatène les résultats de la requête en une seule chaîne XML, puis utilise STUFF pour supprimer le premier caractère "," .

Concaténation basée sur XML

Une autre option consiste à exploiter la concaténation XML fonctionnalité :

DECLARE @CodeNameString varchar(100)

SET @CodeNameString = (SELECT CodeName FROM dbo.AccountCodes FOR XML PATH(''))
Copier après la connexion

Approche basée sur le curseur

Dans les cas où la concaténation XML n'est pas réalisable, une approche basée sur le curseur peut être utilisée :

DECLARE @CodeNameString varchar(100)
DECLARE @CodeName varchar(50)

DECLARE cursor CURSOR FOR
SELECT CodeName
FROM dbo.AccountCodes
ORDER BY Sort

OPEN CURSOR
FETCH NEXT FROM CURSOR INTO @CodeName
WHILE @@FETCH_STATUS = 0
BEGIN
   SET @CodeNameString = @CodeNameString + @CodeName + ','
   FETCH NEXT FROM CURSOR INTO @CodeName
END

CLOSE CURSOR
DEALLOCATE CURSOR
Copier après la connexion

Cette méthode parcourt les résultats de la requête et les ajoute au @CodeNameString variable.

L'approche préférée

L'approche préférée dépend de la version de SQL Server et des caractéristiques spécifiques des données. Pour les cas où les données contiennent des caractères spéciaux tels que '<', '>' ou '&', envisagez d'utiliser la technique FOR XML PATH et STUFF, tandis que pour des ensembles de données plus volumineux ou des scénarios sensibles aux performances, l'approche basée sur le curseur peut être plus appropriée.

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