sql奇进偶舍函数
create function sslr(@num numeric(20,10),@i int)
--@i保留的小数位
--@num传入的数据
returns varchar(20)
as
begin
declare @numtemp numeric(20,10),@result varchar(20)
set @numtemp=abs(@num)*power(10,@i+1)
select @numtemp=(case when floor(@numtemp)-floor(@numtemp/10)*10=5
then (case when @numtemp-floor(@numtemp)=0
then (case when cast(floor(@numtemp/10) as int)%2=0
then floor(@numtemp/10)/power(10,@i)
else round(@numtemp/power(10,@i+1),@i)
end)
else round(@numtemp/power(10,@i+1),@i)
end)
else round(@numtemp/power(10,@i+1),@i)
end)
set @result=(case when @num> 0 then str(@numtemp,20,@i) else str(0-@numtemp,20,@i) end)
return @result
end
--@i保留的小数位
--@num传入的数据
returns varchar(20)
as
begin
declare @numtemp numeric(20,10),@result varchar(20)
set @numtemp=abs(@num)*power(10,@i+1)
select @numtemp=(case when floor(@numtemp)-floor(@numtemp/10)*10=5
then (case when @numtemp-floor(@numtemp)=0
then (case when cast(floor(@numtemp/10) as int)%2=0
then floor(@numtemp/10)/power(10,@i)
else round(@numtemp/power(10,@i+1),@i)
end)
else round(@numtemp/power(10,@i+1),@i)
end)
else round(@numtemp/power(10,@i+1),@i)
end)
set @result=(case when @num> 0 then str(@numtemp,20,@i) else str(0-@numtemp,20,@i) end)
return @result
end