2008-11-17 7 views
5

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

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())

+0

La façon que je viens de découvrir par moi-même: D – Sekhat

Questions connexes