create function test_str(@id int)returns varchar(100)as begin declare @a varchar(100) set @a='' select @a= @a+Code+',' from test where orid=@id --in(select distinct orid from test ) return @a endgoselect distinct left(dbo.test_str(orid),charindex(',',dbo.test_str(orid))-1) ,dbo.test_str(orid) as code from test