--测试表 createtable Test (F1 varchar(10), F2 varchar(10)) --插入数据 insertinto Test select'jack' F1,'book1' F2 union select'jack' F1,'book2' F2 union select'jack' F1,'book3' F2 union select'Mary' F1,'book4' F2 union select'Mary' F1,'book5' F2 union select'Mike' F1,'book1' F2 union select'Mike' F1,'book5' F2 union select'Mike' F1,'book7' F2 union select'Mike' F1,'book9' F2 --一条动态SQL语句 go --合并函数 CREATEFUNCTION MergeCharField(@Groupvarchar(255)) RETURNSvarchar(8000) AS BEGIN DECLARE@rvarchar(8000) SET@r='' SELECT@r=@r+','+rtrim(F2) FROM Test WHERE F1=@Group RETURN(substring(@r,2,8000)) END GO --调用 select F1 [name],dbo.MergeCharField(F1) [book]from test groupby F1 --删除测试环境 droptable test dropFUNCTION MergeCharField