摘要:

下文讲述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

d9176f2a714178f6aef6e59462bfc486.png

mssql_sqlserver去掉小数点后面多余0的示例分享

Logo

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

更多推荐