더북(TheBook)

단순형 CASE 표현식은 expr 값이 WHEN 다음의 comparision_expr1과 같으면 return_expr1을, comparision_expr2와 같으면 return_expr2를 반환하는 식으로 처리됩니다. 모든 WHEN 절과 비교해 같지 않으면 ELSE 절로 제어권이 넘어와 else_expr을 반환합니다. 여기서 주의할 점은 return_expr1, return_expr2, …, else_expr은 모두 같은 데이터형이어야 한다는 점입니다. 즉, 첫 번째 WHEN 절에서 숫자형을, 두 번째 WHEN 절에서 문자형 값을 사용할 수는 없습니다.

검색형 CASE 표현식 구문

CASE WHEN condition1 THEN return_expr1
     WHEN condition2 THEN return_expr2
     …
     ELSE else_expr
END

 

검색형 CASE 표현식은 WHEN 절 자체에 비교 조건이 들어가고 나머지는 단순형과 쓰임새가 동일합니다. 단순형은 expr 값이 WHEN 절 이하의 값과 같은 경우만 체크할 수 있는 반면, 검색형 CASE 표현식은 WHEN 절에서 조건식을 사용할 수 있어 다양한 조건 비교가 가능해 그 활용 범위가 더 넓습니다. 조건식을 사용할 수 있다는 것은 단순히 값이 같은지 뿐만 아니라 기준 값이 비교 값과 크거나 작은지 등 다양한 연산자를 사용해 비교 범위를 넓힐 수 있다는 의미입니다. 이런 이유로 단순형보다 검색형 구문을 더 많이 사용합니다. 여기에서는 검색형 CASE 표현식을 한번 사용해 보도록 하죠.

쿼리 6-8 검색형 CASE 표현식

SELECT emp_name
      ,age
      ,CASE WHEN age BETWEEN 0  AND 19 THEN '10대'
            WHEN age BETWEEN 20 AND 29 THEN '20대'
            WHEN age BETWEEN 30 AND 39 THEN '30대'
            WHEN age BETWEEN 40 AND 49 THEN '40대'
            WHEN age BETWEEN 50 AND 59 THEN '50대'
            ELSE '60대 이상'
       END ages
  FROM EMP03;

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