您的位置:首页 > 数据库

一条SQL生成九九乘法表

2007-06-06 15:36 267 查看

with t as (select level as n from dual connect by level <=9)


  select sys_connect_by_path(b.n || '*' || a.n || '=' || a.n * b.n, ' ') as 九九乘法表


    from t a, t b


      where a.n >= b.n and level = a.n


        start with b.n=1


          connect by a.n=prior a.n and b.n=prior b.n+1;



 绝吧?用到了不少东东:WITH、sys_connect_by_path, start with ... connect by ...

执行结果:


SQL> with t as (select level as n from dual connect by level <=9)


  2    select sys_connect_by_path(b.n || '*' || a.n || '=' || a.n * b.n, ' ') as 九九乘法表


  3      from t a, t b


  4        where a.n >= b.n and level = a.n


  5          start with b.n=1


  6            connect by a.n=prior a.n and b.n=prior b.n+1;




九九乘法表


--------------------------------------------------------------------------------


 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 rows selected




SQL> 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  sql path