首页 > 其他 > 详细

去除小数后0与转文本

时间:2019-02-15 21:12:55      阅读:286      评论:0      收藏:0      [点我收藏+]

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;

 

去除小数后0与转文本

原文:https://www.cnblogs.com/BinBinGo/p/10385660.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!