如何在不使用参数的情况下从结果集中获取逗号分隔的结果

时间:2011-12-13 14:53:43

标签: sql-server tsql

如何从以下示例中获取逗号分隔的结果,不带参数和单个查询:

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

Bob Barker, Willie Aammes, Steve Allen, Clive Anderson

感谢。

2 个答案:

答案 0 :(得分:7)

使用参数(更好的性能):

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

答案 1 :(得分:-3)

我所知道的最简单的方法是编写一个迭代结果集的存储过程,并为除最后一行之外的所有行附加逗号和空格。