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 ?
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, '')
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(''))
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
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!