계층형 질의문 + with 절
with loop_table as (select level as num
from dual
connect by level <= 9)
select '2' || ' x '|| num || ' = '|| 2*num as "2단"
from loop_table;
1번부터 100번까지의 합?
select sum(level)
from dual
connect by level <= 100;
1번부터 100번까지의 합에서 55를 뺀 값?
select sum(level)
from dual
where level != 55
connect by level <= 100;
with loop_table as (select level as num
from dual
connect by level <= 9),
gugu_table as (select level + 1 as gugu
from dual
connect by level <= 8)
select to_char(a.num) || ' x ' || to_char(b.gugu) || ' = ' || to_char(b.gugu * a.num) as 구구단
from loop_table a, gugu_table b; -- 전체에 대해서 조인
2,5,7단만 빼고 출력
with loop_table as (select level as num
from dual
connect by level <= 9),
gugu_table as (select level as gugu
from dual
connect by level <= 9)
select to_char(a.num) || ' x ' || to_char(b.gugu) || ' = ' || to_char(b.gugu * a.num) as 구구단
from loop_table a, gugu_table b
where a.num in (2,5,7);
with loop_table as (select level as num
from dual
connect by level <= 8)
select lpad('', num, '') as star
from loop_table;
반대로 출력하기
with loop_table as (select 9-level as num
from dual
connect by level <= 8)
select lpad('', num, '') as star
from loop_table;
with loop_table as (select level as num
from dual
connect by level <=8)
select lpad(' ', 10-level, ' ') || lpad('', num, '') as "Triangle"
from loop_table;