티스토리 뷰
IF-THEN
주어진 조건식의 결과 값이 true인 경우에는 작업을 수행하지만, false 또는 NULL일 경우에는 작업을 수행하지 않고 다음 내용을 실행합니다.
IF 조건 THEN
-- 조건이 참일 때 실행할 코드
END IF;
DECLARE
v_num NUMBER := 10;
BEGIN
IF v_num > 0 THEN
DBMS_OUTPUT.PUT_LINE('v_num은 양수입니다.');
END IF;
END;
v_num 변수의 값이 0보다 큰 경우에만 "v_num은 양수입니다."라는 메시지를 출력합니다.
IF-THEN-ELSE
IF-THEN-ELSE 문은 조건에 따라 두 가지 다른 코드 블록 중 하나를 실행하는 구조입니다. 조건이 참(True)인 경우 THEN 아래에 있는 코드 블록이 실행되고, 조건이 거짓(False)인 경우 ELSE 아래에 있는 코드 블록이 실행됩니다.
IF 조건 THEN
-- 조건이 참일 때 실행할 코드
ELSE
-- 조건이 거짓일 때 실행할 코드
END IF;
DECLARE
v_num NUMBER := 10;
BEGIN
IF v_num > 0 THEN
DBMS_OUTPUT.PUT_LINE('v_num은 양수입니다.');
ELSE
DBMS_OUTPUT.PUT_LINE('v_num은 음수입니다.');
END IF;
END;
v_num 변수의 값이 0보다 큰 경우에는 "v_num은 양수입니다."를 출력하고, 그렇지 않은 경우에는 "v_num은 음수입니다."를 출력합니다.
IF-THEN-ELSIF
IF-THEN-ELSIF 문은 다중 조건을 처리하기 위해 사용됩니다. 여러 조건을 순차적으로 평가하고, 첫 번째로 참(True)인 조건을 만나면 해당하는 코드 블록이 실행됩니다.
IF 조건1 THEN
-- 조건1이 참일 때 실행할 코드
ELSIF 조건2 THEN
-- 조건2가 참일 때 실행할 코드
ELSIF 조건3 THEN
-- 조건3이 참일 때 실행할 코드
...
ELSE
-- 모든 조건이 거짓일 때 실행할 코드
END IF;
DECLARE
v_score NUMBER := 85;
BEGIN
IF v_score >= 90 THEN
DBMS_OUTPUT.PUT_LINE('Grade: A');
ELSIF v_score >= 80 THEN
DBMS_OUTPUT.PUT_LINE('Grade: B');
ELSIF v_score >= 70 THEN
DBMS_OUTPUT.PUT_LINE('Grade: C');
ELSIF v_score >= 60 THEN
DBMS_OUTPUT.PUT_LINE('Grade: D');
ELSE
DBMS_OUTPUT.PUT_LINE('Grade: F');
END IF;
END;
v_score 변수의 값에 따라 다른 학점을 출력합니다. v_score가 90 이상인 경우 'Grade: A'를 출력하고, 80 이상인 경우 'Grade: B'를 출력합니다. 70 이상인 경우 'Grade: C', 60 이상인 경우 'Grade: D'를 출력하며, 그 외에는 'Grade: F'를 출력합니다.
CASE 조건문
CASE 조건문도 IF 조건문과 마찬가지로 조건식의 결과 값에 따라 여러 가지 수행 작업을 지정할 수 있습니다. CASE 조건문은 두 가지가 있는데, 단순 CASE 문과 검색 CASE 문이 있습니다.
단순 CASE 문
단순 CASE문은 비교 기준(여러 가지 결과 값이 나올 수 있는)이 되는 변수 또는 식을 명시합니다. 그리고 각 결과 값에 따라 수행할 작업을 지정합니다.
CASE 변수 또는 식
WHEN 값1 THEN
-- 값1에 해당하는 동작
WHEN 값2 THEN
-- 값2에 해당하는 동작
...
ELSE
-- 모든 조건에 해당하지 않는 경우의 동작
END CASE;
검색 CASE 문
검색 CASE문은 비교 기준을 명시하지 않고 각각의 WHEN 절에서 조건식을 명시한 후 해당 조건을 만족할 때 수행할 작업을 정해줍니다.
CASE
WHEN 조건1 THEN
-- 조건1이 참일 때의 동작
WHEN 조건2 THEN
-- 조건2가 참일 때의 동작
...
ELSE
-- 모든 조건에 해당하지 않는 경우의 동작
END CASE;
DECLARE
v_grade CHAR(1);
v_score NUMBER := 85;
BEGIN
v_grade := CASE
WHEN v_score >= 90 THEN 'A'
WHEN v_score >= 80 THEN 'B'
WHEN v_score >= 70 THEN 'C'
WHEN v_score >= 60 THEN 'D'
ELSE 'F'
END;
DBMS_OUTPUT.PUT_LINE('Grade: ' || v_grade);
END;
v_score 변수의 값에 따라 학점을 결정하여 v_grade 변수에 저장하고 출력합니다. CASE 문을 사용하여 v_score 값에 따라 다른 학점을 설정하고, 그에 해당하는 결과를 출력합니다.
'공부 > SQL' 카테고리의 다른 글
[SQL]PL/SQL - 3 반복제어문 (0) | 2023.06.16 |
---|---|
[SQL]PL/SQL - 1 (1) | 2023.06.16 |
날짜 관련 함수 (0) | 2023.06.14 |
오라클 숫자 관련 함수 (0) | 2023.06.14 |
오라클 문자 관련 함수 (0) | 2023.06.14 |
- Total
- Today
- Yesterday
- C언어
- 퀵정렬
- 1436
- 문자열 압축
- 2869
- 2525
- 10773
- 알고리즘
- 체스판 다시 칠하기
- 4673
- 계수정렬
- 이진 변환 반복하기
- 영화감독 슘
- 프록시와 지연로딩
- Java
- 달팽이는 올라가고 싶다
- 오븐 시계
- 1034
- 프로그래머스
- 위상정렬
- 셀프 넘버
- 수 정렬하기 3
- N과 M (2)
- 10989
- 수 찾기
- 카드2
- 2164
- 백준
- 15651
- 15650
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |