Oracle Case When then 문법은 Decode 함수와 더불어 주로 사용되는 조건식 SQL 문법이다.
Decode 함수란?
2023.06.26 - [Study/Database] - Oracle DECODE함수
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라는 테이블에서 조회를 하였다.
결과값은
이러한 결과값이 출력되게 된다.
'Study > Database' 카테고리의 다른 글
Dbeaver(디비버)와 MariaDB(마리아DB) 연동하기(최초설치, 최초연동) (0) | 2023.07.28 |
---|---|
MariaDB 설치하기(Window) (0) | 2023.07.27 |
무료DB툴 디비버(Dbeaver) 설치하기 (0) | 2023.06.29 |
Oracle DECODE함수 (0) | 2023.06.26 |
Null 치환 함수인 NVL 함수에 대해서 알아보자 (0) | 2023.06.21 |