求一句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