PL/SQL_분기문(CASE WHEN)

Gyeomii·2022년 5월 6일
0

PL/SQL

목록 보기
3/4
post-thumbnail

(사용예)회원테이블에서 마일리지를 조회하여
0 ~ 2000 : 'Biginner'
2001 ~ 5000 : 'Normal'
5001 ~ : 'Excellent' 를 비고에 출력하시오
출력은 회원명, 마일리지, 비고이다.

선언부

 DECLARE
      CURSOR CUR_MEM02 IS
        SELECT MEM_NAME, MEM_MILEAGE FROM MEMBER;
      V_RES VARCHAR2(200);

begin + case when

BEGIN
      FOR REC IN CUR_MEM02 LOOP -- 반복하려면 CURSOR가 필요하다.
        CASE WHEN REC.MEM_MILEAGE < 2001 THEN
                  V_RES := RPAD(REC.MEM_NAME, 8)||'|'||
                           LPAD(REC.MEM_MILEAGE, 5)||'|'||' Beginner';
             WHEN REC.MEM_MILEAGE >5000 THEN
                  V_RES := RPAD(REC.MEM_NAME, 8)||'|'||
                           LPAD(REC.MEM_MILEAGE, 5)||'|'||' Excellent';
             ELSE 
                  V_RES := RPAD(REC.MEM_NAME, 8)||'|'||
                           LPAD(REC.MEM_MILEAGE, 5)||'|'||' Normal';
        END CASE;
        DBMS_OUTPUT.PUT_LINE(V_RES);
        DBMS_OUTPUT.PUT_LINE('----------------------------------');
     END LOOP;
    END;
profile
김성겸

0개의 댓글