从sql server 2005中的多行获取逗号分隔值

时间:2009-09-28 10:20:10

标签: sql-server-2005

我有这张桌子

Cream
----------
CHOCALATE
GREEN
TEST

想要输入像这样的选择查询

CHOCALATE,GREEN,TEST

4 个答案:

答案 0 :(得分:6)

使用sysobjects可以解决这个问题:

DECLARE @List varchar(2000)

SELECT @List = COALESCE(@List + ',', '') + Cast(name As varchar(50))
FROM sys.sysobjects

SELECT @List As 'List'

答案 1 :(得分:4)

当我需要这样做时,我找到了一个有用的资源here,但正如其他人所说,使用COALESCE ......

DECLARE @List VARCHAR(1000)

SELECT @List = COALESCE(@List + ', ', '') + Name
FROM Cream

SELECT @List

答案 2 :(得分:3)

您可以使用coalesce

答案 3 :(得分:0)

执行此操作的最佳方法是创建聚合用户定义函数并将其注册到数据库中。

试试这个例子。

http://msdn.microsoft.com/en-us/library/ms165055.aspx

您的查询看起来像“SELECT dbo.Concatenate(Field)FROM Cream”

您将返回您所期望的“a,b,c,d ......”等等。