create table infor(age int ,telnum varchar ( 10 )) insert into infor values ( 23 , ' 887907 ' ) insert into infor values ( 23 , ' 807005 ' ) insert into infor values ( 20 , ' 123456 ' ) insert into infor values ( 21 , ' 21343 ' ) insert into infor values ( 21 , ' 674542 ' ) go create function getall( @a int ) returns varchar ( 8000 ) as begin declare @str varchar ( 8000 ) set @str = '' select @str = @str + ' , ' + cast (telnum as varchar ) from infor where age = @a set @str = right ( @str , len ( @str ) - 1 ) return ( @str ) End go select distinct age ,dbo.getall(age) as telnum from infor -- --结果 20 123456 21 21343 , 674542 23 887907 , 807005