取小数的有效值函数

 

 

CREATE FUNCTION [dbo].[f_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 @ 2021-12-27 20:51  乌柒柒  阅读(48)  评论(0编辑  收藏  举报