初值太大了,,SQL 使用 BIGINT 类型也只能接受 20!
CREATE FUNCTION [dbo].[JC] (@n int)
RETURNS bigint AS
BEGIN
if @n>20 return 0
declare @Result bigint
if @n=1 SET @Result= 1
else SET @RESULT= @n*dbo.JC(@n-1)
RETURN @REsult
END
-------------------------------------------------------------------
CREATE FUNCTION [dbo].[TEST] (@n bigint)
RETURNS float(53) AS
BEGIN
if @n>20 return 0
declare @result float(53)
if @n=1 set @Result=(1.0*(dbo.jc(1)))/(1.0*(dbo.jc(3)))
else SET @Result=(1.0*(dbo.jc(2*@n-1)))/(1.0*(dbo.jc(2*@n+1)))+dbo.TEST(@n-1)
return @result
END
定义了2个函数,调用 TEST 函数即可