表类似如下: Type Name Amount
K1 A 100
K2 B 100
K2 C 80
K1 D 60
K3 E 120
K3 F 150
K2 G 100
最后结果是: Type Name Amount
K1 A,D 160
K2 B,C,G 280
K3 E,F 270
函数
CREATE FUNCTION MergeCharField(@Group varchar(255)) RETURNS varchar(8000) AS BEGIN DECLARE @r varchar(8000) SET @r='' SELECT @r=@r+','+rtrim(Name) FROM A WHERE Type=@Group RETURN(substring(@r,2,8000)) END GO --调用 select Type,dbo.MergeCharField(Type),SUM(amount) FROM A GROUP BY type