J'ai un résultat défini dans MS-SQL dans une procédure stockée et indique qu'il contient une colonne VARCHAR, mais plusieurs lignes. Je veux créer une chaîne séparée par des virgules contenant toutes ces valeurs. Y a-t-il un moyen facile de le faire, ou vais-je devoir parcourir chaque résultat et construire la chaîne manuellement? Je préférerais de préférence le faire dans la procédure stockée elle-même.Création d'une chaîne longue à partir d'un jeu de résultats
5
A
Répondre
7
est ici un moyen (en utilisant AdventureWorks2008 DB):
DECLARE @name varchar(255)
SET @name = NULL
select @Name = COALESCE(@Name + ',','') + LastName from Person.Person
Select @name
Et voici une autre (pour SQL 2005 et suivantes):
SELECT
LastName + ','
FROM
Person.Person
FOR XML PATH('')
Dans les deux cas, vous devrez supprimer la virgule de fin '' (peut utiliser la fonction STUFF())
1
Cette question a été posée quelques fois avant:
La façon que je viens de découvrir par moi-même: D – Sekhat