I want to return the results of select Column from Table into a comma separated string using SQL Server.
The column in question is rather large (nvarchar(2000)) so the solution has to be able to handle very large result values.
I want to return the results of select Column from Table into a comma separated string using SQL Server.
The column in question is rather large (nvarchar(2000)) so the solution has to be able to handle very large result values.
DECLARE @result nvarchar(max)
SET @result = ''
SELECT @result = @result + [Column] + N','
FROM [TABLE]
//TODO: trim last ',' if you require
PRINT @result
If Column can be null, then either exclude it first, or use ISNULL/COALESCE - otherwise a single NULL will break the entire sequence. It is more efficient to exclude it with a WHERE:
SELECT @result = @result + [Column] + N','
FROM [TABLE]
WHERE [Column] IS NOT NULL
without the trailing comma version:
declare @s varchar(max);
select @s = isnull(@s + ', ' + lastname, lastname)
from person
order by lastname;
print @s;