Создание длинной строки из набора результатов - PullRequest
5 голосов
/ 17 ноября 2008

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

Желательно сделать это в самой хранимой процедуре.

Ответы [ 2 ]

7 голосов
/ 17 ноября 2008

Вот один из способов (с использованием базы данных 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 ())

1 голос
/ 17 ноября 2008

Этот вопрос задавался несколько раз ранее:

Как вернуть несколько значений в одном столбце (T-SQL)?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...