日期:2014-05-19  浏览次数:21119 次

求一句SQL
表A数据如下:
FID     Field1
1         A
1         B
1         C
2         D
2         E
2         F
要求按如下格式显示:
FID     Field1
1         A,B,C
2         D,E,F    
如何做到?

------解决方案--------------------



create table 表名(FID varchar(10), Field1 varchar(100))
go

insert into 表名 select 1, 'A '
insert into 表名 select 1, 'B '
insert into 表名 select 1, 'C '
insert into 表名 select 2, 'D '
insert into 表名 select 2, 'E '
insert into 表名 select 2, 'F '
go

--创建一个合并的函数
create function f_merge(@name varchar(100))
returns varchar(8000)
as
begin
declare @str varchar(8000)
set @str = ' '
select @str = @str + ', ' + cast(Field1 as varchar(100)) from 表名 where FID = @name
set @str = stuff(@str , 1,1, ' ')
return(@str)
End
go

--select * from 表名

--调用自定义函数得到结果:
select FID ,dbo.f_merge(FID) as tel from 表名 group by FID

drop table 表名
drop function f_merge