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

Ret*_*der 3 t-sql sql-server

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

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

Bob Barker, Willie Aammes, Steve Allen, Clive Anderson
Run Code Online (Sandbox Code Playgroud)

谢谢.

Chr*_*end 7

有参数(更好的性能):

DECLARE @list VARCHAR(max)

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

SELECT @list
Run Code Online (Sandbox Code Playgroud)

没有参数(不是高性能):

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
Run Code Online (Sandbox Code Playgroud)

  • 执行此操作时,请查看实际执行计划.带参数的第一个选项比我包含的STUFF示例快得多. (2认同)