一. 判断整数还是小数
二.去除小数最后的0
三.判断小数精确位数
DECLARE @number1 AS numeric(10,2),@number2 AS numeric(10,2)
SELECT @number1=10.00,@number2=10.2
SELECT
CASE WHEN CAST(@number1 AS INT)=@number1 THEN '整数' ELSE '小数' END,
CASE WHEN CAST(@number2 AS INT)=@number2 THEN '整数' ELSE '小数' END
二.去除小数最后的0
CREATE function [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) --其他任何情形
三.判断小数精确位数
declare @numvalue float
select @numvalue = 192.17
select charindex('.',reverse(@numvalue))-1