성장일기 : 문과생의 개발 여정 (งᐖ)ว ( ᐛ )و

DECODE, CASE 본문

백엔드개발/DATABASE

DECODE, CASE

hyemi_flora 2023. 10. 31. 09:26

1027 수업내용

# DECODE

    - 자바의 switch-case와 유사한 문법

    - DECODE (column, case1, value1, case2, value... defalut vlaue)


SELECT

    first_name,

    department_id

FROM

    employees; -- 현재 부서명은 알 수 없다

DECODE사용 ↓

SELECT

    first_name,

    DECODE (department_id,

    10,'관리부',

    20, '마케팅부',

    30, '구매부',

    40, '인사부',

    60, 'IT',

    department_id -- 맨 마지막은 defalut 위치

    ) AS department_name

FROM

    employees; -- DECODE를 사용해 case1 이 나오면 value1로 변경되는 것이다.

   

/*

    연습문제 : 직책에 다음과 같이 인상된 급여를 출력 (이름과 급여만 출력)

    IT_PROG : 20%

    SH_CLERK : 5%

    ST_CLERK : 3%

    그 외 : 변동 없음

*/

 

 

 

 

 

 

 

 

 


#   CASE

 

    - DECODE()는 switch-case처럼 정확하게 일치하는 경우만 매핑이 가능하다.

    - CASE는 if문처럼 원하는 조건에 따라 원하는 동작을 할 수 있다.

    작성법 :

    CASE

        WHEN 조건 THEN 출력값

        WHEN 조건 2 THEN 출력값 2

        ...

        ELSE 기본값

    END


SELECT * FROM employees;

SELECT

    first_name, job_id,

    CASE

      WHEN job_id = 'IT_PROG' THEN salary * 1.2

      WHEN job_id LIKE '%_CLERK' THEN salary * 1.03

      ELSE salary

    END AS "increased_salary"

FROM

    employees;