在SQL中的一行中显示同一列的多个值

时间:2013-08-26 12:00:48

标签: sql sql-server sql-server-2008 stored-procedures

我正在处理一个存储过程,在我的工作中使用一个函数来扩展它。目前我在一行中显示来自同一列的多个值时遇到问题,并且它们必须有所不同,并且显示为 25,26,27

所以这就是我一直在尝试的。

DECLARE @myVariable varhcar(200) null)
SELECT @myVariable = COALESCE(@myVariable + '','','') + stringvalue
from TABLE
WHERE COLUMN1 = SOMEVARIABLE
and ISSUE = COLUMN2

SELECT @Headtext = 'name' + convert(varchar, @myVariable)

在此之前,我在SP中创建了一个表,其中显示了其他数据。我希望SP用这些数据创建行。仍然有一些麻烦不确定这个,第一个计时器与这种SP。

1 个答案:

答案 0 :(得分:2)

您的代码应如下所示:

DECLARE @myVariable varhcar(200);
SELECT @myVariable = COALESCE(@myVariable + ',', '') + stringvalue
from TABLE
WHERE COLUMN1 = SOMEVARIABLE and ISSUE = COLUMN2;

SELECT @Headtext = 'name' + @myVariable;

连接变量的另一种方法是:

SELECT @myVariable = stuff((select ',' + stringvalue
                            from TABLE
                            WHERE COLUMN1 = SOMEVARIABLE and ISSUE = COLUMN2
                            for xml path ('')
                           ), 1, 1, '');

SELECT @Headtext = 'name' + @myVariable;