IF문
- 다른 응용 프로그램언어의 IF문과 같은 기능
- 기본IF
IF 조건 THEN 명령1; [ELSE 명령2;] END IF;
- 나열식 IF
IF 조건1 THEN --나열식 IF 명령1; ELSIF 조건2 THEN 명령2; ELSIF 조건3 THEN 명령3; : ELSE 명령4; END IF;
- 중첩 IF
IF 조건1 THEN -- 중첩 IF IF 조건2 THEN 명령1; ELSE 명령2; END IF; ELSE 명령3; END IF;
예)임의의 부서코드(10-110)를 하나 생성하여 해당부서에 속한 사원정보를 조회하고
첫 번째 검색된 사원의 급여가 3000미만이면 '낮음임금',3000~6000이면 '중간임금',
그 이상이면 '높은임금'을 출력하시오.
출력할 데이터는 사원명, 부서명, 급여, 비고이다.declare v_name employees.emp_name%type; v_dept_name departments.department_name%type; v_sal employees.salary%type; v_remarks varchar2(50); v_dept_id departments.department_id%type; begin v_dept_id := ROUND(dbms_random.value(10,110),-1); --dbms.random.value(난수를 발생시킬 시작값, 발생할 난수의 끝값) --DBMS_RANDOM.VALUE()DBMS에서 제공하는 난수제공함수 select a.emp_name, b.department_name, a.salary into v_name, v_dept_name, v_sal --변수에 넘겨주기 위해 INTO를 씀 from employees a, departments b where a.department_id = b.department_id and a.department_id = v_dept_id and rownum=1; if v_sal between 1 and 2999 then v_remarks:='낮음임금'; elsif v_sal between 3000 and 6000 then v_remarks:='보통임금'; else v_remarks:='높은임금'; end if; dbms_output.put_line(v_name||', '||v_dept_name||', '||v_sal||'=>'||v_remarks); end;