您好 任何人都可以帮助我以下。我需要编写一个MS SQL语句来实现以下目的:
表1有两列:Column1
和Column2
table1中的数据看起来像
Column1 Column2
1 a
1 b
1 c
2 w
2 e
3 x
我需要我的Sql语句输出如下
Column1 Column2
1 a, b, c
2 w, e
3 x
所以换句话说,我需要按column1分组,并将column2值与逗号分隔连接。请注意,这需要能够在SQL Server 2000及更高版本上运行
答案 0 :(得分:4)
您可以创建一个函数来连接值
create function dbo.concatTable1(@column1 int) returns varchar(8000)
as
begin
declare @output varchar(8000)
select @output = coalesce(@output + ', ', '') + column2
from table1
where column1 = @column1 and column2 > ''
return @output
end
GO
所以假设你有这个表
create table table1 (column1 int, column2 varchar(10))
insert table1 select 1, 'a'
insert table1 select 1, 'b'
insert table1 select 1, 'c'
insert table1 select 2, 'w'
insert table1 select 2, 'e'
insert table1 select 3, 'x'
GO
你像这样使用它
select column1, dbo.concatTable1(column1) column2
from table1
group by column1