Programming/오라클[SQL]

오라클[sql] 반복문

콩king 2022. 9. 24. 22:58

반복문

 

문법

  LOOP

    IF  조건 THEN EXIT;  -- 종료문

    END IF;

  END LOOP;
  

  LOOP

    EXIT WHEN 조건;

  END LOOP;
  

  WHILE 조건 LOOP

  END LOOP;
  

  FOR 변수 IN 최소값..최대값 LOOP

    -- 변수값이 최소값부터 최대값으로 한번씩 증가

  END LOOP;

예제 - 구구단

ACCEPT p_dan PROMPT '구구단 단 입력?'

 

DECLARE

  v_dan INTEGER :=  &p_dan;

  cnt INTEGER;   

BEGIN

  FOR i IN 1..9 LOOP

    cnt := v_dan * i;

    DBMS_output.put_line(v_dan || ' x ' || i || ' = ' || cnt);
  END LOOP;

END;

/

 

예제 - 1~100 홀수 합산 / 짝수 합산

DECLARE

  odd_sum INTEGER := 0;

  even_sum INTEGER := 0;

BEGIN

  FOR i IN 1..100 LOOP

    IF i mod 2 = 0 THEN even_sum := even_sum + i;
    -- ELSE odd_sum := odd_sum + i;
    ELSIF mod(i,2) = 1 THEN odd_sum := odd_sum + i;
    END IF;

  END LOOP;

  

  DBMS_output.put_line('홀수 합산 : ' || odd_sum );

  DBMS_output.put_line('짝수 합산 : ' || even_sum );

END;

/

 

예제 - 2단 출력 > 9~1 내림차순으로 출력

▶ 내림차순 REVERSE

DECLARE

  cnt INTEGER;

BEGIN

  FOR i IN REVERSE 1..9 LOOP

    cnt := 2 * i;

    DBMS_output.put_line(2 || ' x ' || i || ' = ' || cnt);

  END LOOP;

END;

/