2

再帰関数を説明するプログラミング例を誰かが提案できますか?たとえば、フィボナッチ数列または階乗。

4

3 に答える 3

3

「一般的なテーブル式」を検索します。このリンクも参照してください

上記のリンクから例を追加して更新します。

;WITH Fibonacci(n, f, f1)
AS (
        -- This is the anchor part
        -- Initialize level to 1 and set the first two values as per definition
        SELECT  CAST(1 AS BIGINT),
                CAST(0 AS BIGINT),
                CAST(1 AS BIGINT)

        UNION ALL

        -- This is the recursive part
        -- Calculate the next Fibonacci value using the previous two values
        -- Shift column (place) for the sum in order to accomodate the previous
        -- value too because next iteration need them both
        SELECT  n + 1,
                f + f1,
                f
        FROM    Fibonacci
        -- Stop at iteration 93 because we than have reached maximum limit
        -- for BIGINT in Microsoft SQL Server
        WHERE   n < 93
)
-- Now the easy presentation part
SELECT  n,
        f AS Number
FROM    Fibonacci
于 2009-11-10T16:48:25.053 に答える
2

これが私がgoogle.comを使って見つけたいくつかの記事です;)

T-SQLでの
再帰ストアドプロシージャで
の再帰の使用再帰的なユーザー定義関数(SQL Server 2000)

于 2009-11-10T16:49:04.647 に答える
1

CTE クエリの再帰については、このリンクを参照してください。 http://www.4guysfromrolla.com/webtech/071906-1.shtml

TSQL プロシージャ/関数の再帰については、このリンクを参照してください http://msdn.microsoft.com/en-us/library/aa175801%28SQL.80%29.aspx

于 2009-11-10T17:08:25.730 に答える