代码改变世界

sql百分比的计算的标量函数

2012-03-19 21:38  李帅营  阅读(1020)  评论(0编辑  收藏  举报

 在计算统计时有时候会用到百分比,在此写一个简单的sql标量值函数

alter function GetPercentage
(@first int,
@second int)
returns varchar(20)
as
begin
  declare @result varchar(20)

  set @second=isnull(@second,0)
  set @first=isnull(@first,0)
  if(@second='')
    set @result='0%'
  else if(@second=0)
    set @result='0%'
  else
    begin
      set @result=cast(cast((@first*100/@second) as decimal(10,0)) as varchar(50)) +'%'
    end
  return @result
end

其中@first为除数,@second为被除数。上面的精确度到整位数;精度可在decimal(10,0)处进行替换,0即为要保留的小数位数

在调用时候,标量值函数会有一个特殊的要求,即:在名称前加上dbo.;

不然将出现如下错误:


消息 195,级别 15,状态 10,第 1 行
'GetPercentage' 不是可以识别的 内置函数名称。