如何在sql中生成Fibonacci系列!
我需要生成Fibonacci系列0 1 1 2 3 5 8 13 21 ... N.
我使用C代码很容易做到这一点,我需要使用Sql做到这一点!
N J*_*N J 14
试试这个简单的查询:
1)逐行结果(单列,多行)
WITH Fibonacci (PrevN, N) AS
(
SELECT 0, 1
UNION ALL
SELECT N, PrevN + N
FROM Fibonacci
WHERE N < 1000000000
)
SELECT PrevN as Fibo
FROM Fibonacci
OPTION (MAXRECURSION 0);
Run Code Online (Sandbox Code Playgroud)
输出1:

2)仅针对一行中的结果(逗号被解释,在单个单元格中)
WITH Fibonacci (PrevN, N) AS
(
SELECT 0, 1
UNION ALL
SELECT N, PrevN + N
FROM Fibonacci
WHERE N < 1000000000
)
SELECT Substring(
(SELECT cast(', ' as varchar(max)) + cast(PrevN as varchar(max)
);
FROM Fibonacci
FOR XML PATH('')),3,10000000) AS list
Run Code Online (Sandbox Code Playgroud)
输出2:
