티스토리 뷰

공부/SQL

[SQL]PL/SQL - 2 조건 제어문

kd0547 2023. 6. 16. 19:48

 

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
링크
«   2025/05   »
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
글 보관함