摘要:
下文讲述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的示例分享