深爱不及久伴ler

导航

SQL 除去数字中多于的0

/*
    除掉多于的0
*/
CREATE FUNCTION [dbo].[fn_ClearZero]
(
    @inValue VARCHAR(50)
)
RETURNS VARCHAR(50)
AS
BEGIN
    DECLARE @returnValue VARCHAR(20);
    IF (@inValue = '')
        SET @returnValue = ''; --空的时候为空
    ELSE IF (CHARINDEX('.', @inValue) = '0')
        SET @returnValue = @inValue; --针对不含小数点的
    ELSE IF (SUBSTRING(REVERSE(@inValue), PATINDEX('%[^0]%', REVERSE(@inValue)), 1) = '.')
        SET @returnValue = LEFT(@inValue, LEN(@inValue) - PATINDEX('%[^0]%', REVERSE(@inValue))); --针对小数点后全是0的
    ELSE
        SET @returnValue = LEFT(@inValue, LEN(@inValue) - PATINDEX('%[^0]%.%', REVERSE(@inValue)) + 1); --其他任何情形
    RETURN @returnValue;
END;


GO

 

摘自别人的博客,时间有点久远原博地址没找到  -_-||  ....

 

posted on 2019-06-10 08:32  深爱不及久伴ler  阅读(476)  评论(0编辑  收藏  举报