--------------方法A-----------------
程序:
declare
i int:=1;
v varchar2(200):=NULL;
v1 varchar2(20):=NULL;
begin
loop
for k in 1..i loop
v1:=k||'*'||i||'='||k*i;
v:=v||' '||v1;
end loop;
dbms_output.put_line(v);
v:=NULL;
i:=i+1;
exit when i>9;
end loop;
end;
运行结果如下:
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
declare
i int:=1;
v varchar2(200):=NULL;
v1 varchar2(20):=NULL;
begin
loop
for k in 1..i loop
v1:=k||'*'||i||'='||k*i;
v:=v||' '||v1;
end loop;
dbms_output.put_line(v);
v:=NULL;
i:=i+1;
exit when i>9;
end loop;
end;
运行结果如下:
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
--------------方法B--------佩服该作者的技术---------
select max(sys_connect_by_path(st, ' '))
from (select i || '*' || j || '=' || i * j st, i, j
from (select rownum i from dual connect by rownum < 10) a,
(select rownum j from dual connect by rownum < 10) b
where i <= j)
connect by j = prior j and i = prior i + 1
start with i = 1
group by j
order by 1
MAX(SYS_CONNECT_BY_PATH(ST,''))
-----------------------------------------------------------------------------------
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
已选择9行。
from (select i || '*' || j || '=' || i * j st, i, j
from (select rownum i from dual connect by rownum < 10) a,
(select rownum j from dual connect by rownum < 10) b
where i <= j)
connect by j = prior j and i = prior i + 1
start with i = 1
group by j
order by 1
MAX(SYS_CONNECT_BY_PATH(ST,''))
-----------------------------------------------------------------------------------
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
已选择9行。