想了一下,其实可以用下面的方法来实现,虽然没你想象中灵活,但你要合计的列总是有限的:CREATE FUNCTION GetAFieldSum  (@AField varchar(255))
RETURNS int
AS
BEGIN
   DECLARE @Result int   SELECT @Result=(
CASE @AField
WHEN 'COLUMN_NAME1' THEN SUM(COLUMN_NAME1)
WHEN 'COLUMN_NAME2' THEN SUM(COLUMN_NAME2)
ELSE SUM(COLUMN_NAME3)
   )
   FROM TABLE_NAME

   RETURN(@Result)
ENDDECLARE @Result int
EXEC @Result=GetAFieldSum('COLUMN_NAME1')/**************************************/
/*              学无止境              */ 
/**************************************/