CASE
CASE는 함수가 아니고 연산자에 해당합니다(다른 DBMS에서는 CASE를 표현식 범주에 넣고 있습니다). CASE의 작동 방식은 지금까지 알아본 흐름 제어 함수들과 비슷합니다. 조건을 확인해서 조건에 부합하는 경우와 그렇지 않은 경우에 따라 각각 다른 값을 반환합니다.
CASE 연산자는 다음과 같이 두 가지 형태로 사용할 수 있습니다.
구문 6-1
CASE value WHEN compare_value1 THEN result1
WHEN compare_value2 THEN result2
...
ELSE result
END ... ;
첫 번째 형태는 CASE 다음에 오는 value 값을 WHEN 다음에 있는 compare_value1 값과 비교해 두 값이 같으면 result1을 반환합니다. 만약 같지 않으면 두 번째 WHEN 다음에 있는 compare_value2 값과 비교해 같으면 result2를 반환합니다. 이런 식으로 WHEN 절을 계속 추가해 비교할 수 있고, 그 어떤 값과도 같지 않으면 ELSE 다음에 있는 result 값을 반환합니다.
구문 6-2
CASE WHEN 조건1 THEN result1
WHEN 조건2 THEN result2
...
ELSE result
END ... ;