sql自定义函数传参去掉一个最高分一个最低分

CREATE FUNCTION CalculateAverage(@参数1 bigint,@参数2 bigint) returns int -- 设置返回值,记住是 returns 而不是 return AS BEGIN DECLARE @result varchar(50) DECLARE @Average int SET @result = (select count (分数) from 数据库名 where 数据库字段1= @Project and 数据库字段2= @ProjectReview GROUP BY 数据库字段1,数据库字段2    --若不加group by 会报错 IF @result < 3 BEGIN SET @Average = (select round(AVG(分数),0) from 数据库名 where 数据库字段1= @Project and 数据库字段2= @ProjectReview GROUP BY数据库字段1,数据库字段2) END ELSE BEGIN SET @Average = (select AVG(IEVScore) from 数据库名 where Pkey not in ( select top 1 Pkey from 数据库名order by 分数 union all select top 1 Pkey from 数据库名order by 分数desc ) and 数据库字段1= @Project and 数据库字段2= @ProjectReview GROUP BY 数据库字段1,数据库字段2) END return @Average -- 返回结果 END

Comments