如何在SELECT语句中将多个值作为一个字段返回

时间:2018-08-31 15:05:27

标签: sql sql-server-2008

我有这样的查询:

Include

结果集如下:

Where

如您所见,只有最后一列有所不同。我希望此查询返回一行,并将最后一列中的所有项目列为一个字段。没有结合,我尝试了合并,但是我无法真正使其发挥作用。我还能尝试什么?

1 个答案:

答案 0 :(得分:0)

在SQL Server中执行此操作的方法是使用STUFF函数。为了演示如何使用它,下面给出一个简化的示例。这使用了自我联接,但是很容易更改。

declare @test1 table
(
fkfield int,
datafield varchar(50)
)

insert into @test1 VALUES
(1,'ABC'),  
(1,'DEF'),   
(2,'xyz'),   
(2,'mno'),
(2,'pqr')

SELECT DISTINCT 
       fkfield,
       Stuff((SELECT ', ' + datafield  
              FROM   @test1 t2 
              WHERE  t2.fkfield  = t1.fkfield 
              FOR XML PATH('')), 1, 2, '') ConCatData
FROM   @test1 t1  

结果如下:

1   ABC, DEF
2   xyz, mno, pqr

HTH