您的位置:首页 > 数据库

【趣味SQL】打印菱形

2013-12-23 22:57 190 查看
热身 - 打印三角形

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