SQL 21편: 조건 제어문(IF, CASE), 반복 제어문(LOOP)
조건 제어문
1. IF 조건문
종류 | 설명 |
IF-THEN | 특정 조건을 만족하는 경우 수행 |
IF-THEN-ELSE | 특정 조건을 만족하는 경우와 반대 경우에 각각 지정한 작업 수행 |
IF-THEN-ELSIF | 여러 조건에 따라 각각 지정한 작업 수행 |
1) IF-THEN
IF 조건식 THEN
수행할 문장;
END IF;
2) IF-THEN-ELSE
IF 조건식 THEN
수행할 문장;
ELSE
수행할 문장;
END IF;
3) IF-THEN-ELSIF
IF 조건식 THEN
수행할 문장;
ELSIF 조건식
수행할 문장;
ELSIF
수행할 문장;
...
ELSE
수행할 문장;
END IF;
2. CASE 문
IF-THEN-ELSIF 문과 같이 조건식의 결과 값이 여러가지 일 때, CASE문을 사용하면 더욱 단순하게 표현할 수 있다.
1) 단순 CASE문
CASE 비교 기준
WHEN 값1 THEN
수행할 문장;
WHEN 값2 THEN
수행할 문장;
...
ELSE
수행할 문장;
END CASE;
2) 검색 CASE문
비교 기준 없이 각각의 WHEN절에서 조건식을 이용한다. 그러므로 정해진 비교 기준으로만 조건을 나눌 수 있는 단순 CASE문보다는 비교적 다양한 조건식을 사용할 수 있다는 이점이 있다.
CASE
WHEN 조건식1 THEN
수행할 문장;
WHEN 조건식2 THEN
수행할 문장;
...
ELSE
수행할 문장;
END CASE;
반복 제어문
1. 반복문 종류와 중단 명령어
1) 반복문 종류
LOOP | 기본 반복 |
WHILE LOOP | 특정 조건동안 반복 |
FOR LOOP | 반복 횟수동안 반복 |
Cursor FOR LOOP | 커서를 활용한 반복 |
2) 반복 수행 중단/건너뛰기 명령어
EXIT | 수행 중인 반복 종료 |
EXIT-WHEN | 조건식을 만족하면 반복 종료 |
CONTINUE | 현재 주기를 건너 뜀 |
CONTINUE-WHEN | 조건식을 만족하면 현재 반복 주기를 건너 뜀 |
2. 반복문 형식 정리
1) LOOP
EXIT 명령어 없이는 무한 반복이 되기 때문에 주로 EXIT 명령어와 함께 사용한다.
LOOP
수행할 문장;
END LOOP;
2) WHILE LOOP
조건식의 결과가 true 일 때 조건을 반복하고 false 가 되면 반복을 끝낸다.
WHILE 조건식 LOOP
수행할 문장;
END LOOP;
3) FOR LOOP
현재 숫자가 저장되는 특수한 변수인 카운터 i를 이용하여 반복한다.
카운터는 값을 임의로 할당할 수 없고 현재 저장되어 있는 값을 참조만 할 수 있다.
역순으로 반복하고 싶다면 IN 뒤에 REVERSE 키워드를 사용한다.
FOR i IN REVERSE 시작값 .. 종료값 LOOP
수행할 문장;
END LOOP;
4) CONTINUE, CONTINUE-WHEN
반복 수행 중 CONTINUE가 실행되면 현재 반복 주기에 수행해야 할 남은 작업을 건너뛰고 다음 반복 주기로 바로 넘어가는 효과가 있다. 오라클 11G 버전부터 사용할 수 있다.
FOR i IN REVERSE 시작값 .. 종료값 LOOP
수행할 문장;
END LOOP;