/* 除掉多于的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
摘自别人的博客,时间有点久远原博地址没找到 -_-|| ....