SQL自定义函数,把sql中小数点后的多于0去掉
方法xb_trim:
--方法作用:把sql中小数点后的多于0去掉
--@strVar为要转换的字符
--返回值:varchar 既检验不通过,返回自身,其它为要的值
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[xb_trim]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[xb_trim]
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE FUNCTION xb_trim (@strVar varchar(100))
RETURNS VARCHAR(100) AS
BEGIN
DECLARE @TMPVAR DECIMAL(20,2)
if isNULL(@strVar,'')=''
return @strVar;
IF(ISNUMERIC(@strVar)<>1)
RETURN @strVar
ELSE IF(charindex('E',@strVar)>0)
RETURN @strVar
ELSE IF(charindex(',',@strVar)>0)
RETURN @strVar
ELSE
BEGIN
SET @TMPVAR=CONVERT(DECIMAL(20,2),@strVar)
IF(@TMPVAR=0)
RETURN '0'
ELSE
BEGIN
WHILE(SUBSTRING(@strVar,LEN(@strVar),1)='0' AND CHARINDEX('.',@strVar)>0)
BEGIN
SET @strVar=SUBSTRING(@strVar,0,LEN(@strVar))
END
IF(SUBSTRING(@strVar,LEN(@strVar),1)='.')
SET @strVar=SUBSTRING(@strVar,0,LEN(@strVar))
END
END
RETURN @strVar
END
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO