더북(TheBook)

09 | 표현식 

표현식Expression이란 한 개 이상의 값과 연산자, SQL 함수 등이 결합된 식이다. 이 절에서는 특정 조건에 따라 값을 변경해서 보이는 CASE 표현식(흔히 CASE문이라고도 한다)에 대해 알아 보자.

    CASE WHEN 조건1 THEN 값1
         WHEN 조건2 THEN 값2
    ...
         ELSE 기타 값
    END

사원 테이블에서 각 사원의 급여에 따라 5000 이하로 급여를 받는 사원은 C, 5000~15000은 B, 15000 이상은 A등급을 반환하는 쿼리를 작성해 보자.

입력

    SELECT employee_id, salary,
           CASE WHEN salary <= 5000 THEN 'C등급'
                WHEN salary > 5000 AND salary <= 15000 THEN 'B등급'
                ELSE 'A등급'
           END AS salary_grade
      FROM employees;

결과

    EMPLOYEE_ID  SALARY    SALARY_GRADE
    ------------ --------- ------------
           198        2600        C등급
           199        2600        C등급
           200        4400        C등급
           201       13000        B등급
           202        6000        B등급
           203        6500        B등급
           204       10000        B등급
           205       12008        B등급
           206        8300        B등급
           100       24000        A등급
    ...
    107개의 행이 선택됨.

WHEN 다음에 조건을 기술하고 THEN 다음에는 앞에서 기술한 조건에 만족하면 실제 출력되는 값을 명시하고 있는데, 주의할 점은 THEN 이하 출력 값들의 데이터 타입은 반드시 일치시켜야 한다. 즉 앞의 문장은 THEN 다음에 있는 ‘C 등급’, ‘B 등급’은 데이터 타입이 모두 문자 형태로 동일하게 명시했는데, 만약 ‘C 등급’, ‘3’, ‘4’처럼 문자형과 숫자형을 혼합해 기술하면 오류가 발생한다. CASE 표현식은 다른 프로그래밍 언어에서도 제공하는 기능으로 그 쓰임새는 비슷하나 프로그래밍 언어나 DBMS 종류에 따라 구문 형식이 약간씩 다르다는 점은 염두에 두자.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.