09-05-2023, 12:59 PM
در اینجا یک مثال از تابع بازگشتی در SQL Server آورده شده است که یک دنباله فیبوناچی تولید میکند:
کد:
CREATE FUNCTION Fibonacci( @n INT )
RETURNS TABLE
AS
RETURN
(
SELECT 0 AS n
UNION ALL
SELECT 1 AS n
UNION ALL
SELECT Fibonacci(@n - 1) + Fibonacci(@n - 2) AS n
FROM Fibonacci( @n - 1 )
);
این تابع دو پارامتر ورودی دارد: @n که تعداد عناصر دنباله را مشخص میکند.
تابع از دو عبارت UNION ALL استفاده میکند تا یک دنباله از عناصر دنباله فیبوناچی تولید کند. اولین عبارت UNION ALL دو عدد 0 و 1 را به دنباله اضافه میکند. عبارت دوم UNION ALL از نتیجه تابع بازگشتی خود برای تولید بقیه عناصر دنباله استفاده میکند.
در اینجا مثالی از نحوه استفاده از این تابع آورده شده است:
تابع از دو عبارت UNION ALL استفاده میکند تا یک دنباله از عناصر دنباله فیبوناچی تولید کند. اولین عبارت UNION ALL دو عدد 0 و 1 را به دنباله اضافه میکند. عبارت دوم UNION ALL از نتیجه تابع بازگشتی خود برای تولید بقیه عناصر دنباله استفاده میکند.
در اینجا مثالی از نحوه استفاده از این تابع آورده شده است:
کد:
SELECT * FROM Fibonacci( 10 );
این کوئری خروجی زیر را تولید میکند:
نقل قول: n
-------
0
1
1
2
3
5
8
13
21
34
تابع بازگشتی در SQL Server یک راه قدرتمند برای تولید دنبالههای تکراری است. این تابع میتواند برای تولید دنبالههای فیبوناچی، دنبالههای هندسی، و سایر دنبالههای تکراری استفاده شود.