是否可以将SQL单列结果作为逗号分隔的字符串?

时间:2010-06-23 11:22:55

标签: sql-server sql-server-2005 tsql

  

可能重复:
  How do I Create a Comma-Separated List using a SQL Query?

我正在开发一个Web应用程序。我需要单列选择的SQL查询,如

select 
  recordid 
from 
  device 
where 
  accountid in (1,2)) 

我需要将此结果格式化为逗号分隔的SQL字符串。

4 个答案:

答案 0 :(得分:5)

DECLARE @Concat varchar(max)

select @Concat = CAST(recordid as varchar(10)) + coalesce(',' + @Concat , '')
 from device 
 where accountid in (1,2)

 SELECT @Concat

答案 1 :(得分:2)

您可以使用以下内容:

DECLARE @result AS VARCHAR(MAX)

SET @result = '' -- initialize with empty string to avoid NULL result

SELECT
  @result = @result + ',' + CAST(recordid AS VARCHAR)
FROM
  device
WHERE
  accountid IN (1,2)


SELECT @result AS recordids

答案 2 :(得分:2)

答案 3 :(得分:0)

您还可以编写自定义CLR aggregate function,它最终可以比使用字符串连接更优化(特别是使用非常大的结果集)。