oracle 去掉小数点后面的0,mssql sqlserver如何去掉小数点后面多余的0呢?
摘要:下文讲述sqlserver数据库中去掉小数点后面多余0的方法分享,如下所示;实现思路:方式1:将数值转换为real类型即可cast(@a as real)或convert(real,@a)方式2:通过编写自定义函数处理多余的零/*自定义函数的实现原理:/*匹配出连续零的位置*/patindex('%[^0]%',reverse(@a)通过反转,然后把反转后字符串左边所有的零剔除掉*/例:de
摘要:
下文讲述sqlserver数据库中去掉小数点后面多余0的方法分享,如下所示;
实现思路:
方式1:
将数值转换为real类型即可
cast(@a as real)
或
convert(real,@a)
方式2:
通过编写自定义函数处理多余的零
/*
自定义函数的实现原理:
/*匹配出连续零的位置*/
patindex('%[^0]%',reverse(@a)
通过反转,然后把反转后字符串左边所有的零剔除掉
*/
例:
declare @a decimal(18,5)
set @a =18.9
select cast(@a as real)
,convert(real,@a)
go
CREATE function dbo.duoYuLingJieQu(@a varchar(50))
returns varchar(50)
as
begin
declare @returnValue varchar(20)
if(@a='')
set @returnValue=''
else if (charindex('.',@a) ='0') --无小数点
set @returnValue=@a
else if ( substring(reverse(@a),patindex('%[^0]%',reverse(@a)),1)='.')
set @returnValue =left(@a,len(@a)-patindex('%[^0]%',reverse(@a))) --针对小数点后全是0的
else
set @returnValue =left(@a,len(@a)- patindex('%[^0]%.%',reverse(@a))+1) --其他任何情形
return @returnValue
end
go
select dbo.duoYuLingJieQu('19.81000')
go
drop function dbo.duoYuLingJieQu
go

mssql_sqlserver去掉小数点后面多余0的示例分享
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)