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