程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 在SQL存儲過程中使用遞歸

在SQL存儲過程中使用遞歸

編輯:關於SqlServer

遞歸的基本概念非常簡單:一段給定的代碼對自身進行調用,直到某些邊界條件得到滿足。在本文中,我們將演示如何在T-SQL中使用遞歸。

在我的眼中,遞歸是最為精致的程序結構之一。我已經在許多場合用不同的編程語言實現過它。遞歸的基本概念非常簡單:一段給定的代碼對自身進行調用,直到某些邊界條件得到滿足。我將通過下面的內容展示如何在T-SQL中使用遞歸。我所用到的是遞歸的經典例子:階乘計算。

階乘的意思就是將小於等於這一數字的所有數字相乘,直至乘到2。例如,factorial(10)即等於10 * 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2(你也可以加上“*1”,但似乎是多此一舉)。

以下代碼即實現了階乘:

CREATE PROCEDURE [dbo].[Factorial_ap]

(

@Number Integer,

@RetVal Integer OUTPUT

)

AS

DECLARE @In Integer

DECLARE @Out Integer

IF @Number != 1

BEGIN

SELECT @In = @Number – 1

EXEC Factorial_ap @In, @Out OUTPUT

SELECT @RetVal = @Number * @Out

END

ELSE

BEGIN

SELECT @RetVal = 1

END

RETURN

GO

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved