【发布时间】:2020-03-01 08:34:26
【问题描述】:
请帮帮我。我需要编写两个函数,一个计算阶乘,另一个计算欧拉之和。
要进行欧拉和,我需要使用计算工厂的函数。 我已经有了阶乘的功能,但是在求和时我得到“NULL”
注意:需要用“while”循环来完成
e = 1 + (1/1!) + (1/2!) + (1/3!) + (1/n!)
我的代码:
CREATE FUNCTION Factorial (@a INT)
RETURNS INT
AS
BEGIN
DECLARE @i INT
IF @a <= 1
SET @i =1
ELSE
SET @i = @a * dbo.Factorial(@a-1)
RETURN @i
END
SELECT dbo.Factorial(11) 'factorial'
CREATE FUNCTION Sum_Euler(@a FLOAT)
RETURNS FLOAT
BEGIN
DECLARE @b FLOAT,
@c FLOAT;
SET @c = (SELECT dbo.Factorial(@a))
WHILE(@b <= @c)
BEGIN
SET @b = 1 / @a * @c
END
SET @b = @b + 1
RETURN @b
END
GO
SELECT dbo.Sum_Euler(10)
【问题讨论】:
-
dbo.Factorial1表中有什么内容,或者您打算输入dbo.Factorial? -
dbo.Factorial 抱歉
-
您在设置初始值之前在
WHILE(@b <= @c)语句中使用了@b。 -
如何设置初始值?
-
DECLARE @b float = 0
标签: sql sql-server loops while-loop sql-server-2014