"분기문"은 조건에 따라 다른 일을 하게 만드는 제어문이야.
✅ Oracle에서 사용하는 분기문 종류
| 분기문 | 설명 |
| IF ~ THEN | 조건이 참일 때만 실행 |
| IF ~ THEN ~ ELSE | 조건이 참/거짓일 때 각각 실행 |
| IF ~ ELSIF ~ ELSE | 여러 조건 중 하나 선택 |
| CASE WHEN ~ THEN | 값에 따라 실행 분기 (if문보다 깔끔함) |
🧪 1. IF ~ THEN
IF 점수 >= 90 THEN
DBMS_OUTPUT.PUT_LINE('A학점');
END IF;
- 조건이 참일 때만 실행됨
- END IF; 꼭 붙여줘야 해!
🧪 2. IF ~ THEN ~ ELSE
IF 점수 >= 60 THEN
DBMS_OUTPUT.PUT_LINE('합격');
ELSE
DBMS_OUTPUT.PUT_LINE('불합격');
END IF;
조건이 참이면 앞쪽, 거짓이면 ELSE 쪽 실행
🧪 3. IF ~ ELSIF ~ ELSE (다단계 조건 분기)
IF 점수 >= 90 THEN
DBMS_OUTPUT.PUT_LINE('A학점');
ELSIF 점수 >= 80 THEN
DBMS_OUTPUT.PUT_LINE('B학점');
ELSIF 점수 >= 70 THEN
DBMS_OUTPUT.PUT_LINE('C학점');
ELSE
DBMS_OUTPUT.PUT_LINE('F학점');
END IF;
여러 조건 중 가장 먼저 참이 되는 것만 실행돼.
🧪 4. CASE 문 (if문보다 깔끔함)
📌 형식 1: 값 기준
CASE 변수명
WHEN 'A' THEN ~
WHEN 'B' THEN ~
ELSE ~
END;
📌 형식 2: 조건 기준 (CASE WHEN)
CASE
WHEN 점수 >= 90 THEN 'A학점'
WHEN 점수 >= 80 THEN 'B학점'
ELSE 'F학점'
END
CASE는 SELECT문 안에서도 쓸 수 있어서 조회 결과를 가공할 때 자주 사용해!
💬 SELECT 안에서 CASE 사용 예
SELECT 이름,
점수,
CASE
WHEN 점수 >= 90 THEN 'A'
WHEN 점수 >= 80 THEN 'B'
ELSE 'F'
END AS 등급
FROM 성적;
🧠 언제 뭐 써야 할까?
| 상황 | 추천 분기문 |
| 단순 조건 (참/거짓) | IF ~ THEN ~ ELSE |
| 여러 개의 조건이 있음 | IF ~ ELSIF 또는 CASE |
| SELECT문 안에서 조건 분기 | CASE |
✅ 예제: 전체 구조 (PL/SQL 블록에서)
DECLARE
v_score NUMBER := 85;
BEGIN
IF v_score >= 90 THEN
DBMS_OUTPUT.PUT_LINE('A');
ELSIF v_score >= 80 THEN
DBMS_OUTPUT.PUT_LINE('B');
ELSE
DBMS_OUTPUT.PUT_LINE('F');
END IF;
END;
'대덕인재 > Oracle' 카테고리의 다른 글
| [Oracle D-18] 반복문 (0) | 2025.04.24 |
|---|---|
| [Oracle D-18] 변수 (0) | 2025.04.24 |
| [Oracle D-17] LOOP (0) | 2025.04.23 |
| [Oracle D-17] PL/SQL에서 사용되는 프로그래밍 구조(Program Units) (0) | 2025.04.23 |
| [Oracle D-16] SYNONYM 객체 (0) | 2025.04.22 |