ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Oracle - DECODE, CASE 함수
    DataBase/Oracle 2024. 8. 12. 22:04
    반응형

     

    DECODE -  값에 따라 반환값을 결정 할 수 있다.

     

    직급에 따라 인상된 급여액을 가져온다.
    CLERK : 10% SALESMAN : 15% PRESIDENT : 200% MANAGER : 5% ANALYST : 20%
    SELECT empno, ename, job,
    		decode(job, 'CLERK', sal*1.1,
    					'SALESMAN', sal*1.15,
    					'PRESIDENT', sal*3,
    					'MANAGER', sal*1.05,
    					'ANALYST', sal*1.2)
    FROM emp;

    이와같이 DECODE를 사용하여 해당 직무에 맞게 인상된 급여액을 가져 올 수 있다.

     

     

    CASE -  조건에 따라 반환값을 결정 할 수 있다.

    급여액별 등급을 가져온다.
    1000미만 : c등급 1000이상 2000미만 : B등급 2000이상 : A등급

     

    SELECT empno, ename, 
    		CASE WHEN sal<1000 THEN 'C등급'
    			 WHEN sal>=1000 AND sal<2000 THEN 'B등급'
    			 WHEN sal>=2000 THEN 'A등급'
    		END 
    FROM emp;

    이와같이 조건을 설정하여 조건에 맞는 값들을 가져올 수 있다. 

     

    직원들의 급여를 다음과 같이 인상한다.
    1000이하 : 100% 1000초과 2000미만 : 50% 2000이상 : 200%
    SELECT empno, ename, 
    		CASE WHEN sal<=1000 THEN sal*2
    			 WHEN sal>1000 AND sal<=2000 THEN sal*0.5
    			 WHEN sal>=2000 THEN sal*3
    		END 
    FROM emp;
    반응형

    'DataBase > Oracle' 카테고리의 다른 글

    Oracle - Having  (0) 2024.08.13
    Oracle - Group by  (0) 2024.08.13
    Oracle - 그룹함수 (avg, sum, min, max)  (0) 2024.08.12
    Oracle - 날짜함수의 모든 것  (0) 2024.08.12
    Oracle 문자열 함수의 모든것  (0) 2024.08.11

    댓글

Designed by Tistory.