将数字转换为数据类型数字时出错

时间:2018-03-23 11:39:36

标签: sql sql-server

ALTER    function [APP].[FN_DCT_Mod97_2]

 (@code as numeric)


 RETURNS numeric

AS 

BEGIN

declare @cd as numeric= (98-(@code % 97))

return @cd

end


select  [APP].[FN_DCT_Mod97_2]  (1234567890123456789)    

我用较少的数字和作品执行此操作,我如何使其与更多数字一起使用?

1 个答案:

答案 0 :(得分:1)

您必须提及NUMERIC值的范围,否则会为其确定最小值。

试试这个:

CREATE FUNCTION [APP].[FN_DCT_Mod97_2](@code AS NUMERIC(38,2))
RETURNS NUMERIC
AS 
BEGIN
    DECLARE @cd AS NUMERIC(38,2)
    SELECT @cd = (98-(@code % 97))
RETURN @cd
END

然后使用功能:

SELECT  [APP].[FN_DCT_Mod97_2]  (1234567890123456789)

<强>输出:

88