读书人

求一句SQL,该怎么处理

发布时间: 2012-01-03 22:16:06 作者: rapoo

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

读书人网 >SQL Server

热点推荐