SQL去掉小数点有效数字后的所有0(隐藏字符.)

847 阅读1分钟
  • 第一种方法

select cast(2.5000000000000   as  real)

select cast(2   as  real)

select cast(2.00000   as  real)

 

 

  • 第二种方法

CREATE function [dbo].[ClearZero](@inValue varchar(50))

returns varchar(50)

as

begin

declare @returnValue varchar(20)

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