본문 바로가기

Oracle/SQL

SQL 알고리즘 ( 구구단 구현하기)

select level as num
 from dual  
 connect by level <=10;

->  먼저 CONNECT BY 절로 1  부터 10 까지 출력 해보도록 한다. 

 

구구단 2단 출력

with  num_table as (select level as num
                   from dual
                    connect by level <=9)
select '2 * '||num||' = '|| 2*num
from num_table;

1 ~9 까지 출력 되는 테이블을 만들고 그 테이블을 바탕으로 2 단을 만든다. 

 

문제 2단과 3단을 연달아서 밑으로 출력하시오

with  num_table as (select level as num
                   from dual
                    connect by level <=9)
select '2 * '||num||' = '|| 2*num as 구구단 
from num_table

union all

select '3 * '||num||' = '|| 3*num
from num_table;

문제 구구단 1_ 9 단 출력하기

with  num_table as (select level as num
                   from dual
                    connect by level <=9),
      num_table2 as ( select level as num2
                     from dual 
                     connect by level <=9)

select n.num||' X '|| n2.num2 || ' = '|| n.num * n2.num2
from num_table n , num_table2 n2;

 

짝수단만 출력하기

with  num_table as (select level as num
                   from dual
                    connect by level <=9),
      num_table2 as ( select level as num2
                     from dual 
                     connect by level <=9)

select n.num||' X '|| n2.num2 || ' = '|| n.num * n2.num2
from num_table n , num_table2 n2
where num in (2,4,6,8);

또는

with  num_table as (select level as num
                   from dual
                    connect by level <=9),
      num_table2 as ( select level as num2
                     from dual 
                     connect by level <=9)

select n.num||' X '|| n2.num2 || ' = '|| n.num * n2.num2
from num_table n , num_table2 n2
where  mod(num,2) =0;