조건 함수입문
CASE
조건에 따라 다른 값을 반환하는 if-else 같은 표현식
정의
프로그래밍 언어의 if-else와 비슷한 SQL 문법. CASE WHEN 조건1 THEN 값1 WHEN 조건2 THEN 값2 ELSE 값3 END 형태로 위에서 아래로 검사해 처음 참이 되는 분기의 값을 반환한다. 예: 연봉 1억 이상이면 'A', 5천 이상이면 'B', 나머지 'C' 같은 등급 분류에 자주 쓴다. 모든 DB에서 동작한다.
왜 중요한가?
복잡한 분류·등급 매기기를 SELECT 한 줄에 표현할 수 있다. 비슷한 Oracle 전용 DECODE 함수도 있지만, CASE가 표준이고 더 읽기 편해서 신규 코드는 CASE를 쓴다.
틀리기 쉬운 포인트
예시
SELECT name, salary, CASE WHEN salary >= 10000 THEN 'A' WHEN salary >= 5000 THEN 'B' ELSE 'C' END AS grade FROM employees;