본문 바로가기
Study/Database

Oracle CASE WHEN THEN 문법

by 얏옹이 2023. 6. 30.
반응형

Oracle Case When then 문법은 Decode 함수와 더불어 주로 사용되는 조건식 SQL 문법이다.

 

Decode 함수란?

 

2023.06.26 - [Study/Database] - Oracle DECODE함수

 

Oracle DECODE함수

조건식 조건에 따라서 그 조건이 참일때와 그렇지 않을때를 구별해 각각의 조건에 따라 작성된 코드가 수행되는것이 조건문이다. Oracle 쿼리에서도 이러한 조건식을 작성할때가 있는데 이때 주

yat-ong.tistory.com

 

Decode 함수에 대해서 일전에 알아보았으니 이번엔 CASE WHEN THEN 문법에 대해서 알아보자.

 

함수를 쓰던 문법을 쓰던 단순한 쿼리에서는 결과치가 동일하게 추출이 가능하다.

 

Decode는 함수라서 SQL에서만 사용이 가능하고, CASE WHEN THEN은 문법이라 PL/SQL 에서도 사용이 가능하다는 차이점이 있다. 

 

또한 Null의 값을 다루는 과정에서도 Decode와 Case 문은 차이점이 있다.

 

NULL과 NULL을 비교했을때 Decode는 true를 반환하는 반면, Case는 false를 반환한다. 이 특징을 알고 주의하면서 상황에 맞게 Decode와 Case를 구별하여 사용하면 좋을것이다.

 

반응형

 

먼저 그럼 사용법을 알아보자.

 

SELECT
	CASE
    	WHEN 조건1 THEN 표현식1
        WHEN 조건2 THEN 표현식2
        WHEN 조건3 THEN 표현식3
        ELSE 표현식4
    END

 

기본 문법은 이러하다.

 

각각 조건식에 따른 표현을 나눠서 할수 있어서 Java에 Switch문을 생각하면 된다.

 

다음은 W3school에 있는 case when 예시 문법이다.

 

 

SELECT OrderID, Quantity,
CASE WHEN Quantity > 30 THEN 'The quantity is greater than 30'
WHEN Quantity = 30 THEN 'The quantity is 30'
ELSE 'The quantity is under 30'
END AS QuantityText
FROM OrderDetails;

 

보면 조회하는 값은 OrderID 컬럼과 Quantity 컬럼이고, 또하나의 컬럼에 case when 조건식을 넣어 각각 조건에 따라서 텍스트 출력을 해주고 컬럼값을 Alias를 이용하여 quantityText라고 이름지었다.

 

그리고 테이블은 OrderDeatils라는 테이블에서 조회를 하였다.

 

결과값은

 

 

 

이러한 결과값이 출력되게 된다. 

 

 

 

반응형