У меня есть набор результатов в MS-SQL в хранимой процедуре, и, допустим, у него есть один столбец VARCHAR, но много строк. Я хочу создать строку, разделенную запятыми, содержащую все эти значения. Есть ли простой способ сделать это, или мне придется проходить через каждый результат и строить строку вручную?
Желательно сделать это в самой хранимой процедуре.


Вот один из способов (с использованием БД AdventureWorks2008):
DECLARE @name varchar(255)
SET @name = NULL
select @Name = COALESCE(@Name + ',','') + LastName from Person.Person
Select @name
А вот еще один (для SQL 2005 и новее):
SELECT
LastName + ','
FROM
Person.Person
FOR XML PATH('')
В обоих случаях вам нужно будет удалить конечную запятую ',' (можно использовать функцию STUFF ())
Этот вопрос задавали несколько раз раньше:
То, как я только что открыл для себя: D