热身 - 打印三角形
col data format a9;
Select lpad(' ',(5-level)) || lpad('x',(2*level-1),'x') data
from dual connect by level <= 5
思路是:长宽不变,用空格填充。最终输出三角形。
DATA
---------
x
xxx
xxxxx
xxxxxxx
xxxxxxxxx
主题 - 打印菱形
col data format a9
select lpad(' ',(5-level)) || lpad('x',(2*level-1),'x') data
from dual connect by level <= 5
union all
select data from
(select lpad(' ',(level-1),' ') || lpad('x',(6-level),'x') || lpad('x',(5-level),'x') data, rownum rn from dual connect by level <= 5) where rn > 1;
思路:将两个上下颠倒的三角形拼在一起就是菱形,只是要去掉中间一行。由于用了connect by,保证了输出的顺序。
DATA
---------
x
xxx
xxxxx
xxxxxxx
xxxxxxxxx
xxxxxxx
xxxxx
xxx
x