|
效果图:
再来一个:
- --打印出奥运五环
- with a as
- (select distinct round(a.x + b.x) x, round(a.y + b.y) y
- from (select (sum(x) over(order by n)) x,
- round(sum(y) over(order by n)) y
- from (select n,
- cos(n / 30 * 3.1415926) * 2 x,
- sin(n / 30 * 3.1415926) y
- from (select rownum - 1 n
- from all_objects
- where rownum <= 30 + 30))) a,
- (select n,
- (sum(x) over(order by n)) x,
- round(sum(y) over(order by n)) y
- from (select n,
- cos(m / 3 * 3.1415926) * 2 * 15 x,
- sin(m / 3 * 3.1415926) * 15 y
- from (select case
- when rownum <= 2 then
- 3
- when rownum = 3 then
- -2
- else
- -6
- end m,
- rownum - 1 n
- from all_objects
- where rownum <= 5))) b)
- select replace(sys_connect_by_path(point, '/'), '/', null) star
- from (select b.y, b.x, decode(a.x, null, ' ', '*') point
- from a,
- (select *
- from (select rownum - 1 + (select min(x) from a) x
- from all_objects
- where rownum <= (select max(x) - min(x) + 1 from a)),
- (select rownum - 1 + (select min(y) from a) y
- from all_objects
- where rownum <= (select max(y) - min(y) + 1 from a))) b
- where a.x(+) = b.x
- and a.y(+) = b.y)
- where x = (select max(x) from a)
- start with x = (select min(x) from a)
- connect by y = prior y
- and x = prior x + 1;
复制代码 效果图:
|
|