求一个合并行问题
名称 年份
Davolio 1992
Fuller 1992
Leverling 1993
Buchanan 1993
Peacock 1993
Suyama 1994
Callahan 1994
Dodsworth 1994
King 1992
我想得到这样的结果:
名称 年份
Davolio,Fuller,King 1992
Leverling,Buchanan,Peacock 1993
Suyama,Callahan,Dodsworth 1994
------解决方案--------------------create function fmerg(@年份 char(10))
returns varchar(8000)
as
begin
declare @str varchar(8000)
set @str= ' '
select @str=@str + 名稱 from C where 年份=@年份
set @str=right(@str,len(@str)-1)
return(@str)
End
go
select dbo.fmerg(年份),年份 from C group by 年份
------解决方案--------------------create function aabb(@bb char(10))
returns varchar(8000)
as
begin
declare @str varchar(8000)
set @str= ' '
select @str=@str + aa + ', ' from table1 where bb=@bb
set @str=left(@str,len(@str)-1)
return(@str)
End
go
select dbo.aabb(bb) as aa ,bb from table1 group by bb
------解决方案--------------------用一个合并函数:
create function test_f on (@year int)
returns nvarchar(1000)
as
begin
declare @s nvarchar(1000)
select @s=isnull(@s+ ', ', ' ')+名称 from table1 where 年份=@year
return @s
end
go
调用:
select distinct [名称]=dbo.test_f(年份),年份 from table1
------解决方案--------------------http://community.csdn.net/Expert/topic/5681/5681636.xml?temp=.8725855这个帖子和我前几天发的类似,希望你参考下