Как получить результат с разделителями-запятыми из набора результатов без использования параметров - PullRequest
3 голосов
/ 13 декабря 2011

Как получить результат с разделителями-запятыми в следующем примере без параметров и из одного запроса:

select FirstName + ' ' LastName from table_of_Names where NameType='game show host'

Bob Barker, Willie Aammes, Steve Allen, Clive Anderson

Спасибо.

Ответы [ 2 ]

7 голосов
/ 13 декабря 2011

С параметрами (лучшая производительность):

DECLARE @list VARCHAR(max)

SELECT @list = COALESCE(@list + ', ' , '') + FirstName + ' ' + LastName 
FROM table_of_Names where NameType='game show host'

SELECT @list

Без параметров (не как у исполнителя):

select stuff((select ','+ FirstName + ' ' + LastName
              FROM table_of_Names where NameType='game show host'
              for xml path(''), type).value('.', 'varchar(max)'), 1, 1, '') as NameList
0 голосов
/ 13 декабря 2011

Самый простой способ, который я знаю, - написать хранимую процедуру, которая выполняет итерацию по набору результатов и добавляет запятую и пробел для всех строк, кроме последней.

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