توابع بازگشتی در SQL Server - نسخهی قابل چاپ +- انجمن وب سایت مشاوره در زمینه پروژه های برنامه نویسی و طراحی وب سایتهای تجاری (http://forum.a00b.com) +-- انجمن: سوالها و مقاله های آموزشی (/forumdisplay.php?fid=1) +--- انجمن: مقاله های آموزشی (/forumdisplay.php?fid=3) +--- موضوع: توابع بازگشتی در SQL Server (/showthread.php?tid=359) |
توابع بازگشتی در SQL Server - ali - 09-05-2023 12:59 PM در اینجا یک مثال از تابع بازگشتی در SQL Server آورده شده است که یک دنباله فیبوناچی تولید میکند: کد: CREATE FUNCTION Fibonacci( @n INT ) این تابع دو پارامتر ورودی دارد: @n که تعداد عناصر دنباله را مشخص میکند. تابع از دو عبارت UNION ALL استفاده میکند تا یک دنباله از عناصر دنباله فیبوناچی تولید کند. اولین عبارت UNION ALL دو عدد 0 و 1 را به دنباله اضافه میکند. عبارت دوم UNION ALL از نتیجه تابع بازگشتی خود برای تولید بقیه عناصر دنباله استفاده میکند. در اینجا مثالی از نحوه استفاده از این تابع آورده شده است: کد: SELECT * FROM Fibonacci( 10 ); این کوئری خروجی زیر را تولید میکند: نقل قول: n تابع بازگشتی در SQL Server یک راه قدرتمند برای تولید دنبالههای تکراری است. این تابع میتواند برای تولید دنبالههای فیبوناچی، دنبالههای هندسی، و سایر دنبالههای تکراری استفاده شود.
RE: توابع بازگشتی در SQL Server - ali - 09-05-2023 01:02 PM در اینجا یک مثال دیگر از تابع بازگشتی در SQL Server آورده شده است که تمام اعداد زوج بین دو عدد داده شده را تولید میکند:
کد: CREATE FUNCTION EvenNumbers( @start INT, @end INT ) این تابع دو پارامتر ورودی دارد: @start که اولین عدد زوج را مشخص میکند، و @end که آخرین عدد زوج را مشخص میکند. تابع از یک عبارت UNION ALL استفاده میکند تا یک دنباله از اعداد زوج تولید کند. اولین عبارت UNION ALL اولین عدد زوج را به دنباله اضافه میکند. عبارت دوم UNION ALL از نتیجه تابع بازگشتی خود برای تولید بقیه اعداد زوج استفاده میکند. در اینجا مثالی از نحوه استفاده از این تابع آورده شده است: کد: SELECT * FROM EvenNumbers( 2, 10 ); این کوئری خروجی زیر را تولید میکند: نقل قول: n تابع بازگشتی در SQL Server یک راه قدرتمند برای تولید دنبالههای تکراری است. این تابع میتواند برای تولید دنبالههای اعداد زوج، اعداد فرد، اعداد اول، و سایر دنبالههای تکراری استفاده شود. تولید اعداد اول توسط توابع بازگشتی در SQL Server - ali - 09-05-2023 01:06 PM در اینجا یک مثال دیگر از تابع بازگشتی در SQL Server آورده شده است که یک دنباله از اعداد اول تولید میکند:
کد: CREATE FUNCTION PrimeNumbers( @n INT ) این تابع یک جدول از اعداد اول را تولید میکند. تابع از یک حلقه while استفاده میکند تا از 1 تا @n بشمارد. برای هر عدد، تابع بررسی میکند که آیا عدد اول است یا خیر. اگر عدد اول نباشد، آن را از جدول حذف میکند. در اینجا مثالی از نحوه استفاده از این تابع آورده شده است: کد: SELECT * FROM PrimeNumbers( 100 ); این کوئری خروجی زیر را تولید میکند: نقل قول: numberتابع بازگشتی در SQL Server یک راه قدرتمند برای تولید مجموعههای تکراری است. این تابع میتواند برای تولید مجموعههای اعداد اول، مجموعههای اعداد زوج، و سایر مجموعههای تکراری استفاده شود. محاسبه مجموع اعداد از 1 تا n با تابع بازگشتی در SQL Server - ali - 09-05-2023 02:38 PM اینجا یک مثال دیگر از یک تابع بازگشتی در SQL Server برای محاسبه مجموع اعداد از 1 تا n را دارید:
کد: CREATE FUNCTION CalculateSum(@n INT) برای استفاده از این تابع، میتوانید به شکل زیر استفاده کنید: کد: SELECT dbo.CalculateSum(5); -- مثال محاسبه مجموع اعداد از 1 تا 5 RE: توابع بازگشتی در SQL Server - ali - 09-05-2023 02:44 PM در اینجا مثال دیگری از یک تابع بازگشتی در SQL Server برای محاسبه اعداد تریبوناچی تا n ارائه میشود:
کد: CREATE FUNCTION CalculateTribonacci(@n INT) برای استفاده از این تابع، میتوانید به شکل زیر استفاده کنید: کد: SELECT dbo.CalculateTribonacci(10); -- مثال محاسبه عدد تریبوناچی با ورودی 10 برای مثالی که با ورودی dbo.CalculateTribonacci(10) ارائه شده، خروجی تابع CalculateTribonacci برابر با مقدار تریبوناچی مربوط به عدد 10 خواهد بود. برای محاسبه این مقدار، میتوانید تابع را به شکل زیر فراخوانی کنید: کد: SELECT dbo.CalculateTribonacci(10); محاسبه توان با استفاده از توابع بازگشتی در SQL Server - ali - 09-05-2023 04:11 PM در اینجا یک مثال دیگر از تابع بازگشتی در SQL Server برای محاسبه توان عددی از یک عدد دلخواه را دارید:
کد: CREATE FUNCTION CalculatePower(@base INT, @exponent INT) برای استفاده از این تابع، میتوانید به شکل زیر استفاده کنید: کد: SELECT dbo.CalculatePower(2, 3); -- مثال محاسبه 2 به توان 3 |