Implementing the fibonacci2() User-Defined Function with a Loop : Recursive function « Procedure Function « SQL Server / T-SQL Tutorial






4> CREATE FUNCTION dbo.fibonacci2(
5>   @n AS int
6> )
7> RETURNS int
8> AS
9> BEGIN
10>   IF @n < 0
11>     RETURN NULL
12>   ELSE
13>     IF @n in (0, 1)
14>       RETURN @n
15>   ELSE
16>   BEGIN
17>     DECLARE
18>       @i AS int,
19>       @f AS int
20>     SET @i = @n
21>     SET @f = 0
22>     WHILE @i > 0
23>     BEGIN
24>       SET @f = @f + @i
25>       SET @i = @i - 1
26>     END -- loop while @i > 0
27>   END -- if @n > 0
28>   RETURN @f
29> END -- function
30> GO
1> --Invoking the Loop fibonacci2() User-Defined Function
2> SELECT dbo.fibonacci2(32) -- succeeds
3> SELECT dbo.fibonacci2(33) -- succeeds
4>
5> drop function dbo.fibonacci2
6> GO

-----------
        528

(1 rows affected)

-----------
        561

(1 rows affected)








21.3.Recursive function
21.3.1.Recursively call itself
21.3.2.iterative solution does not have the restriction 32 nesting levels
21.3.3.Implementing the fibonacci() User-Defined Function with Recursion
21.3.4.Implementing the fibonacci2() User-Defined Function with a Loop
21.3.5.Nesting Stored Procedures