create table ta(a varchar(100),b varchar(100))
insert into ta(a,b) values('a','1')
insert into ta(a,b) values('a','2')
insert into ta(a,b) values('a','3')
insert into ta(a,b) values('b','5')
insert into ta(a,b) values('c','3')
insert into ta(a,b) values('c','2')
insert into ta(a,b) values('c','6')
insert into ta(a,b) values('c','7')
go
create function strhb(@a varchar)
returns varchar(8000)
as
begin
declare @str varchar(8000)
set @str = ''
select @str = @str+',' + b from ta where a = @a
set @str = right(@str , len(@str)-1)
return(@str)
End
go
select distinct a,dbo.strhb(a) as b from ta
drop function dbo.strhb
drop table ta