处理末尾有0数据

/****** Object:  UserDefinedFunction [dbo].[ClearZero]    Script Date: 05/31/2013 17:26:00 ******/
IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ClearZero]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT'))
DROP FUNCTION [dbo].[ClearZero]
GO


/****** Object:  UserDefinedFunction [dbo].[ClearZero]    Script Date: 05/31/2013 17:26:00 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

 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

 
GO

  用法 1、 在你所用的数据库执行以下函数

     2、 在查询sql 语句中 要用到dbo.ClearZero('字符类型')

原文地址:https://www.cnblogs.com/yhyjy/p/3110820.html