有你在真好 的个人博客
你的sql语句写得如何?看看高手是怎么写的!
阅读:2221 添加日期:2021/3/27 23:21:15 原文链接:https://www.toutiao.com/item/6659581486838055435/
你的sql语句写得如何?看看高手是怎么写的!

使用SQL语句,显示“奥运会五环”

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;

你的sql语句写得如何?看看高手是怎么写的!

你的sql语句写得如何?看看高手是怎么写的!

02.使用SQL语句,显示“五角星”

with a as (

select distinct round(sum(x) over(order by n)) x,

round(sum(y) over(order by n)) y

from (select n,

cos(trunc(n / 20) * (1-1/5) * 3.1415926) * 2 x,

sin(trunc(n / 20) * (1-1/5) * 3.1415926) y

from (select rownum - 1 n from all_objects where rownum <= 20 * 5))

)

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;

你的sql语句写得如何?看看高手是怎么写的!

ICP备案号:苏ICP备14035786号-1 苏公网安备 32050502001014号