오라클에서 데이터 조회 시 조건을 설정하거나 값을 변환하는 데 사용되는 문장 중 하나로, IF문이나 연산자의 기능을 대신하는 역할을 합니다. CASE문은 예약어를 사용해 그 형태와 사용법이 매우 간단하고 직관적이며, 복잡한 쿼리 작성 시 편리할 뿐만 아니라 여러 조건의 조합과 비교가 가능하므로 유연성도 높아 다양한 상황에서 활용하실 수 있습니다.
CASE WHEN 문의 기본적인 구조는 아래와 같습니다.
CASE WHEN 조건식1
THEN 결과식1
WHEN 조건식2
THEN 결과식2 ...
ELSE 기본 결과식
END
CASE 구문을 사용할 때 조건식을 하나 이상 설정해주고, 그에 해당하는 결과값을 지정해줍니다. 또한 ELSE 구문을 통해 위의 조건식 중 어느 것에도 해당하지 않는 경우 최종 결과값을 지정할 수 있습니다. 결과는 결과값들 중에서 가장 우선순위가 높은 조건이 만족될 때까지 순차적으로 평가됩니다.
오라클에서 CASE WHEN 문을 좀 더 확장하여 사용하고 싶을 때가 있습니다. 이런 경우 쿼리문 내에 CASE 구문을 추가하여 복수의 조건을 구현할 수 있습니다.
CASE (optional_expression)
WHEN 값1 THEN 결과식1
WHEN 값2 THEN 결과식2 ...
ELSE 기본 결과식
END
이 확장 구조를 통해 변수 또는 표현식과 비교해 여러 값을 지정하여 문제를 해결할 수 있습니다.
오라클 CASE WHEN 문의 다양한 사용 사례를 살펴보겠습니다.
예시1) 고객의 나이에 따른 VIP 등급 결정
SELECT 등급 = CASE WHEN 나이 >= 60 THEN 'Gold' WHEN 나이 >= 45 THEN 'Silver' WHEN 나이 >= 30 THEN 'Bronze' ELSE 'Normal' END FROM 고객;
예시2) 평균 점수에 따른 학점 부여
SELECT 학번, 이름,
학점 = CASE WHEN 평균점수 >= 90 THEN 'A'
WHEN 평균점수 >= 80 THEN 'B'
WHEN 평균점수 >= 70 THEN 'C'
ELSE 'D'
END
FROM 학생;
오라클의 CASE WHEN 문은 복잡한 쿼리를 작성할 때 사용되어 조건식의 조합과 비교에 따라 다양한 결과를 도출할 수 있습니다. 값 변환 및 조건부 결정까지 가능해 유연한 데이터 처리에 적합한 구조로서 다양한 환경에서 빈번하게 사용하실 수 있습니다. 오라클 CASE WHEN 문에 익숙해지고 활용하여 효과적인 데이터 처리와 관리를 지향해 보세요.
오라클 데이터베이스(Oracle Database) - ROWNUM (0) | 2023.05.24 |
---|---|
오라클 데이터베이스(Oracle Database) - DECODE (0) | 2023.05.24 |
오라클 데이터베이스(Oracle Database) - VIEW (0) | 2023.05.24 |
오라클 데이터베이스(Oracle Database) - REPLACE (0) | 2023.05.24 |
오라클 데이터베이스(Oracle Database) - MERGE INTO (0) | 2023.05.24 |
댓글 영역