SqlServer關於帶有小數點的數字信息,去除小數點后多余的零


需求:

       針對帶有小數點的數字信息,去除小數點后多余的零

可能存在的情況:

    1、精度范圍內,出現多余的零    eg:1234.3400     想要的結果為1234.34

    2、精度變大出現的多余的零,或者沒有實際小數部分的數據     eg:1234.0      想要的結果為 1234

   3、數據末尾為小數點,但是沒有實際的小數    eg:1234.    想要的結果為1234



----去零函數 ---去除小數點后多余的零 select dbo.ClearZero('1245.3400') ---結果為1245.34 create function [dbo].[ClearZero] (@Number varchar(200)) returns varchar(200) as begin if @Number = '' or @Number is null ---如果為空,直接返回 return null else begin declare @PointIndex int set @PointIndex = charindex('.',@Number) if @PointIndex = 0 return @Number ---如果不是浮點數,直接返回 if @PointIndex = len(@Number) return replace(@Number,'.','') ----數字末尾有小數點,直接刪除返回 else begin if right(@Number,1) = '0' ---遞歸調用,進行去零操作 begin set @Number = substring(@Number,1,len(@Number) - 1) return dbo.ClearZero(@Number) end else return @Number end end return null end GO


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM