|
方法一:
SELECT REPLACE(MAX(SYS_CONNECT_BY_PATH(fib||', ', '/')),'/','')||'...' fiblist FROM ( SELECT n, fib, ROW_NUMBER() OVER (ORDER BY n) r FROM (select n, round((power((1+sqrt(5))*0.5, n)-power((1-sqrt(5))*0.5, n))/sqrt(5)) fib from (select level nfrom dualconnect by level <= 16) t1) t2) START WITH r=1 CONNECT BY PRIOR r = r-1;/*FIBLIST--------------------------------------------------------------------------------1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, ...*/
方法二:
DECLAREA NUMBER;B NUMBER;C NUMBER;BEGINA:=0;B:=1;C:=1;FOR i IN 1..20 LOOPDBMS_OUTPUT.PUT_LINE('the '||i||' number is:'||C);C:=A+B;A:=B;B:=C;END LOOP;END;/*the 1 number is:1the 2 number is:1the 3 number is:2the 4 number is:3the 5 number is:5the 6 number is:8the 7 number is:13the 8 number is:21the 9 number is:34the 10 number is:55the 11 number is:89the 12 number is:144the 13 number is:233the 14 number is:377the 15 number is:610the 16 number is:987the 17 number is:1597the 18 number is:2584the 19 number is:4181the 20 number is:6765*/
方法三:
select max(s) || ', ...' fibonacci_listfrom(select sfrom dualmodel return all rowsdimension by ( 0 d ) measures ( cast(' ' as varchar2(200)) s, 0 f)rules iterate (16)( f[iteration_number] = decode(iteration_number, 0, 1, 1, 1, f[iteration_number-1] + f[iteration_number-2]), s[iteration_number] = decode(iteration_number, 0, to_char(f[iteration_number]), s[iteration_number-1] || ', ' || to_char(f[iteration_number]))))/*FIBONACCI_LIST--------------------------------------------------------------------------------1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, ...*/ |
|