1 最简单方法
select cast ( CAST (‘12.3400‘ as float) AS VARCHAR(40)) --12.34 --注意 精度丢失 select cast ( CAST (‘123456.7800‘ as float) AS VARCHAR(40)) --123457 --注意 精度丢失和科学计数法 select cast ( CAST (‘12345678.00‘ as float) AS VARCHAR(40)) --1.23457e+007
2 目前发现靠谱方法还是自定义函数
--以下SQL代码为网络摘抄
CREATE FUNCTION dbo.ufn_hr_clearzero (@inValue VARCHAR(50)) RETURNS VARCHAR(50) AS BEGIN DECLARE @returnValue VARCHAR(40); 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;
原文:https://www.cnblogs.com/BinBinGo/p/10385660.html