쿼리 사용시에 조건문에 해당하는 오라클 CASE 기능에 대해서 알아보겠습니다.
1. CASE
오라클에서 사용하는 조건문으로 JAVA의 IF – ELSE문과 비슷함
DECODE와는 사용하기 힘든 비교연산( >, >=, <, <= ) 을 할수가 있음

2. 오라클 CASE 표기 방법
CASE 조건대상 WHEN 조건1 THEN 결과1 WHEN 조건2 THEN 결과2 ELSE 나머지 결과 표기 END
CASE 뒤에 조건 컬럼을 놓고 해당 컬럼에 대한 조건을 걸어놓고 해당되면 그에 대한 결과를 리턴합니다.
DECODE와 비슷하다고 느끼겠지만 DECODE는 비교연산을 하려면 다음 함수와 같이 써야하는 단점이 있지만
CASE같은 경우는 비교연산이 가능하여 숫자같은 조건도 크다, 작다, 같다 등의 크기의 비교를 할수가 있습니다.
3. 예제
SELECT ENAME, JOB, SAL, CASE WHEN SAL>3000 THEN '부자' WHEN SAL>2000 THEN '중산층' WHEN SAL BETWEEN 1000 AND 1999 THEN '서민' ELSE 'ㅜㅜ' END FROM EMP;
다음과 같이 숫자 연산이 필요한 경우는 CASE 뒤에 컬럼을 두지 않고 WHEN 뒤에 컬럼을 놓고 비교 연산자를 쓰시면 됩니다. 또한 BETWEEN 함수를 등을 이용하여 다양한 방법으로 연산이 가능합니다.
4. 결과
연봉이 3000이상인 직원은 부자로 2000이상은 중산층 1000~1999사이는 서민 그리고 나머지는 ㅜㅜ로 표기된 모습입니다.
오라클 CASE 문은 DECODE와 비슷하지만 세부적으로 보면 기능상의 차이가 존재하니 알아두시면 되겠습니다.
답글 남기기