2010-06-23 31 views

回答

5
DECLARE @Concat varchar(max) 

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

SELECT @Concat 
+0

避免不必要的逗号的智能方式... – 2010-06-23 11:31:12

+0

是的这就解决了我的问题 谢谢 – Dharma 2010-06-23 11:48:30

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 
0

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

相关问题