관리 메뉴

Life goes slowly...

[Oracle] 오라클(Oracle) 조건문 - CASE 문 본문

프로그래밍/Oracle

[Oracle] 오라클(Oracle) 조건문 - CASE 문

빨강소 2021. 1. 27. 08:59
728x90
반응형

 

 

오라클(Oracle)에서 조건 함수인 DECODE 함수가 있지만 DECODE 함수는 조건이 많아지게 되면 프로그래밍 코드의 가독성이 떨어지고 오라클 SQL에서만 사용이 가능한 함수입니다. 

오라클(Oracle)에서도 MySql에서와 같이 조건문을 CASE문을 통하여 사용이 가능합니다.

 

  오라클(Oracle)의 CASE문

오라클(Oracle)에서 데이터를 조회시 결과 값에 따라서 내가 원하는 데이터로 변경하여 리턴 하고 싶을 때 CASE문을 사용하게 됩니다. DECODE 함수를 대체하여 CASE 문을 사용하게 되면 가독성이 좋고 많은 기능을 제공하여 대부분 개발자들이 DECODE 함수보다는 CASE문을 많이 사용합니다.

 

//오라클(Oracle) CASE문 사용방법

CASE WHEN 조건문1 THEN 반환값1
	 WHEN 조건문2 THEN 반환값2
     WHEN 조건문3 THEN 반환값3
ELSE 그 이외의 반환값
END

 

 

CASE문을 사용시 ELSE 부분은 생략이 가능하며, 데이터를 반환 시 만족하는 조건이 없다면 NULL을 반환하게 됩니다.

CASE 표현식은 SELECT 표현, WHERE 표현에 많이 사용을 하고 있습니다.

 

--TYPE 1이면 네이버 2면 카카오

//DECODE 함수 사용방법
SELECT 
DECODE(TYPE,1,'네이버','카카오') AS TYPE
FROM
TABLE_TEST


//CASE문 사용방법
SELECT 
TYPE
, CASE TYPE WHEN 1 THEN '네이버'
WHEN 2 THEN '카카오'
WHEN 3 THEN '네이트'
ELSE '그이외' END AS TYPE_NAME
FROM TABLE_TEST

 

CASE WHEN 조건문에 일치하는 데이터가 있다면 THEN에 설정한 데이터 값으로 반환하게 됩니다.

 

 

728x90
반응형
Comments