再帰関数を説明するプログラミング例を誰かが提案できますか?たとえば、フィボナッチ数列または階乗。
4108 次
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を使って見つけたいくつかの記事です;)
于 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 に答える