조건문 (IF, ELSE, ELSIF, CASE)
IF ~ THEN ~ END IF
o 조건문은 IF명령어를 사용하여 조건에 일치하면 THEN 이후 문장을 실행한다.
o 사용 형식
IF 조건문
THEN 실행할 구문
END IF;
DECLARE V_EMPNAME EMPLOYEE.EMP_NAME%TYPE; BEGIN SELECT EMP_NAME INTO V_EMPNAME FROM EMPLOYEE WHERE EMP_ID='&사번';
IF V_EMPNAME='선동일' -- V_EMPNAME이 선동일이면 ‘대표!’를 출력하는 조건문 THEN DBMS_OUTPUT.PUT_LINE('대표!'); END IF; END; / |
IF ~ THEN ~ ELSE ~ END IF
o ELSE 문은 IF문에서 해당하는 조건이 없는 경우 실행되는 구문이다.
o 사용형식
IF 조건문
THEN 실행할 구문
ELSE 실행할 구문
END IF;
DECLARE V_EMPNAME EMPLOYEE.EMP_NAME%TYPE; BEGIN SELECT EMP_NAME INTO V_EMPNAME FROM EMPLOYEE WHERE EMP_ID='&사원아이디';
IF V_EMPNAME='선동일' THEN DBMS_OUTPUT.PUT_LINE(V_EMPNAME||'=대표!'); ELSE DBMS_OUTPUT.PUT_LINE(V_EMPNAME||'=사원!'); END IF; END; / |
IF ~ THEN ~ ELSIF ~ ELSE ~ END IF
o IF ELSE 문은 IF문에서 해당하는 조건이 없는 경우 또다른 조건을 주어 해당하는지 확인하는 조건문이다.
o 사용형식
IF 조건문
THEN 실행할 구문
ELSIF 실행할 구문
ELSE 실행할 구문
END IF;
사번을 입력 받아 해당하는 사원의 직책 코드가 J1이면 ‘대표’ J2면 ‘임원’ 그 외면 ‘사원’ 출력하기.
DECLARE V_JOBCODE EMPLOYEE.JOB_CODE%TYPE; BEGIN SELECT JOB_CODE INTO V_JOBCODE FROM EMPLOYEE WHERE EMP_ID='&사번';
IF V_JOBCODE='J1' THEN DBMS_OUTPUT.PUT_LINE('대표'); ELSIF V_JOBCODE='J2' THEN DBMS_OUTPUT.PUT_LINE('임원'); ELSE DBMS_OUTPUT.PUT_LINE('사원'); END IF; END; / |
CASE
o CASE문은 다수의 선택을 할 수 있는 조건문으로 입력된 값을 매칭하여 구문을 실행한다.
o 사용 형식
CASE [변수명]
WHEN 변수값||조건문 THEN 실행 구문
DECLARE INPUTVALUE NUMBER; BEGIN INPUTVALUE := '&수입력'; CASE INPUTVALUE -- 입력된 값에 따라 일치하는 값을 찾아 해당 구문 출력 WHEN 1 THEN DBMS_OUTPUT.PUT_LINE(INPUTVALUE||'를 입력'); WHEN 2 THEN DBMS_OUTPUT.PUT_LINE(INPUTVALUE||'를 입력'); WHEN 3 THEN DBMS_OUTPUT.PUT_LINE(INPUTVALUE||'를 입력'); ELSE DBMS_OUTPUT.PUT_LINE(INPUTVALUE||'는 없음'); END CASE; END; /
-- CASE문으로 월급이 400이상이면 고액연봉, 200이상이면 연봉, 그 이하는 슬픔 출력하기 DECLARE V_SALARY EMPLOYEE.SALARY%TYPE; BEGIN SELECT SALARY INTO V_SALARY FROM EMPLOYEE WHERE EMP_ID='&사번';
CASE WHEN V_SALARY>=4000000 THEN DBMS_OUTPUT.PUT_LINE('고액연봉'); WHEN V_SALARY>=2000000 THEN DBMS_OUTPUT.PUT_LINE('연봉'); ELSE DBMS_OUTPUT.PUT_LINE('슬픔'); END CASE; END; / |
'DB' 카테고리의 다른 글
[SQL] PL/SQL – PROCEDURE & FUNCTION (0) | 2021.03.29 |
---|---|
[SQL] PL/SQL – 반복문(LOOP,FOR,WHILE) (0) | 2021.03.25 |
[SQL] PL/SQL – 타입 변수 선언, SELECT, INSERT문 처리 (0) | 2021.03.23 |
[SQL] OBJECT SEQUENCE - 순차적 번호 생성 (0) | 2021.03.23 |
[SQL] VIEW – 인라인 뷰, 스토어드 뷰, VIEW 옵션 (0) | 2021.03.22 |