2011-06-15 3 views
4
DECLARE @result varchar(MAX) 

SELECT 
    NAME 
FROM 
    Table 
WHERE 
    ID = @Id 

J'ai besoin de remplir @result avec le résultat Noms, séparés par ','.
Par exemple, si SELECT renvoie «A», «B» et «C», le @result doit être «A, B, C».
Il est Microsoft SQL Server 2008.Créer varchar à partir du résultat SELECT

+0

en double possible de [Création une longue chaîne d'un jeu de résultats] (http://stackoverflow.com/questions/295575/creating-a-long-string-from-a-result-set) – codingbadger

Répondre

9
DECLARE @result varchar(MAX) 
SET @result = ''; 

SELECT 
    @result = @result + NAME + ',' 
FROM 
    Table 
WHERE 
    ID = @Id 

SET @result = SUBSTRING(@result, 1, LEN(@result) - 1) 

SELECT @result 

Enjoy: D

1
DECLARE @CSV varchar(max) 

SET @CSV = '' 

SELECT @CSV = @CSV + Col1 + ',' FROM Table WHERE ... 

SET @CSV = LEFT(@CSV, LEN(@CSV) -1) 

PRINT @CSV 
0

Essayez cette

declare @result varchar(max) 

select @result = COALESCE(@result + ', ', '') + name 
from table 
0

DECLARE @Contribution AS VARCHAR (MAX) SET @Contribution = ( SELECT RTRIM (Ltrim (C.strname)) + ';' FROM tbl M INNER JOIN tbl2 SUR tbl2.ID = tbl.CID OÙ M.PID = @ PID ORDRE PAR C.Orderby POUR XML PATH ('') )

Imprimer @Contribution

Questions connexes