021 数据库学习笔记--求百分比

发布时间 2024-01-08 14:06:23作者: sunwugang
--通过函数处理除法,获取百分比
alter function [dbo].[fungetrate]( @num1 int, @num2 int)
returns nvarchar(10)
as
begin
 declare @res varchar(10)
 select @res = case when @num1 is null or @num2 is null then null
                    when @num1 = 0 then '0%'
                    when @num2 = 0 then null
                --else concat(cast(cast(@num1  * 1.0 /@num2 as decimal(18,4)) * 100  as decimal(18,2)),'%')   end
				--else concat(cast(cast(@num1  * 1.0 /@num2 as decimal(18,2)) * 100  as decimal(18,2)),'%')   end
				else concat(cast(cast(@num1  * 1 /@num2 as decimal(18,2)) * 100  as decimal(18,2)),'%')   end
  return @res
end

select [dbo].[fungetrate](1,1) as passrate

select round(convert(float,1)/convert(float,2),2)
--sql server 除法 1/2=0.5
--0.5
select round(convert(float,1)/convert(float,2),2)
--50%  0%
select str(round(convert(float,1)/convert(float,2),2)*100) +'%' as passrate
select str(round(convert(float,0)/convert(float,2),0)*100) +'%' as passrate