--通过函数处理除法,获取百分比
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