1. 조건문 : IF문
- ORACLE IF문의 특징
1) 조건 다음에는 THEN, 문장 맨 마지막에는 END IF를 명기한다.
2) 조건이 1개 이상이면 ELSE IF가 아닌 ELSIF를 사용한다.
/* 조건이 1개일 경우 */
IF 조건 THEN
조건처리;
END IF;
/* 조건이 2개일 경우 */
IF 조건 THEN
조건처리 1;
ELSE
조건처리 2;
END IF;
- IF문 예제
DECLARE
VN_NUM1 NUMBER := 1;
VN_NUM2 NUMBER := 3;
BEGIN
IF VN_NUM1 >= VN_NUM2 THEN
DBMS_OUTPUT.PUT_LINE(VN_NUM1 || '이 큰수');
ELSE
DBMS_OUTPUT.PUT_LINE(VN_NUM2 || '이 큰수');
END IF;
END;
/
- 조건이 여러 개인 IF문
/* 조건이 N개일 경우 */
IF 조건 THEN
조건처리 1;
ELSIF 조건 THEN
조건처리 2;
…
ELSE
조건처리 N;
END IF;
- 조건이 여러 개인 IF문 예제
DECLARE
VN_SALARY NUMBER := 0;
VN_DEPARTMENT_ID NUMBER := 0;
BEGIN
VN_DEPARTMENT_ID := ROUND(DBMS_RANDOM.VALUE(10, 120), -1);
DBMS_OUTPUT.PUT_LINE(VN_DEPARTMENT_ID);
SELECT SALARY
INTO VN_SALARY
FROM EMPLOYEES
WHERE DEPARTMENT_ID = VN_DEPARTMENT_ID
AND ROWNUM = 1;
DBMS_OUTPUT.PUT_LINE(VN_SALARY);
IF VN_SALARY BETWEEN 1 AND 3000
THEN DBMS_OUTPUT.PUT_LINE('낮음');
ELSIF VN_SALARY BETWEEN 3001 AND 6000
THEN DBMS_OUTPUT.PUT_LINE('중간');
ELSIF VN_SALARY BETWEEN 6001 AND 10000
THEN DBMS_OUTPUT.PUT_LINE('높음');
ELSE
DBMS_OUTPUT.PUT_LINE('최상위');
END IF;
END;
/
2. 조건문 : CASE문
/* CASE문 유형 1 */
CASE 표현식
WHEN 결과1 THEN
처리문1;
WHEN 결과2 THEN
처리문2;
…
ELSE
기타 처리문;
END CASE;
/* CASE문 유형 2 */
CASE -- 해당 유형을 주로 사용한다.
WHEN 표현식1 THEN
처리문1;
WHEN 표현식2 THEN
처리문2;
…
ELSE
기타 처리문;
END CASE;
- CASE문 예제
DECLARE
VN_SALARY NUMBER := 0;
VN_DEPARTMENT_ID NUMBER := 0;
BEGIN
VN_DEPARTMENT_ID := ROUND(DBMS_RANDOM.VALUE (10, 120), -1);
SELECT SALARY
INTO VN_SALARY
FROM EMPLOYEES
WHERE DEPARTMENT_ID = VN_DEPARTMENT_ID
AND ROWNUM = 1;
DBMS_OUTPUT.PUT_LINE(vn_salary);
DBMS_OUTPUT.PUT_LINE(vn_department_id);
CASE
WHEN VN_SALARY BETWEEN 1 AND 3000 THEN
DBMS_OUTPUT.PUT_LINE('낮음');
WHEN VN_SALARY BETWEEN 3001 AND 6000 THEN
DBMS_OUTPUT.PUT_LINE('중간');
WHEN VN_SALARY BETWEEN 6001 AND 10000 THEN
DBMS_OUTPUT.PUT_LINE('높음');
ELSE
DBMS_OUTPUT.PUT_LINE('최상위');
END CASE;
END;
/
참고문헌 : 홍형경(2015), 오라클 SQL과 PL/SQL을 다루는 기술, 길벗