오라클(ORACLE) DECODE 함수와 CASE 함수
2021. 12. 5. 12:59ㆍ오라클(Oracle) 데이터 베이스
DECODE
기준이 되는 데이터를 먼저 지정한 후 해당 데이터 값에 따라 다른 결과 값을 내보내주는 함수
마치, 자바의 IF 조건문 같다.
DECOD 검사 대상이 될 열, 또는 데이터, 연산이나 함수의 결과, 조건1, 데이터가 조건 1과 일치할 때 반환할 결과, 조건2, 데이터가 조건 2와 일치할 때 반환할 결과, ....... FROM 테이블 출처; |
SELECT EMPNO, ENAME, JOB, SAL, DECODE(JOB, 'MANAGER', SAL*1.1, 'SALESMAN', SAL*1.05, 'ANALYST', SAL, SAL*1.03) AS UPSAL |
▲EMPNO, ENAME, JOB, SAL를 출력하는데
JOB이 매니저인 사람의 SAL은 1.1 곱해서,
세일즈 맨은 1.05 곱하고,
애널리스트는 그냥,
나머지 직없은 1.03곱해서
UPSAL이란 별도의 열을 만들라는 소리.
CASE함수
DECODE 함수와 마찬가지로 특정 조건에 따라 반환할 데이터를 설정할 때 사용
CASE 검사 대상이 될 열 또는 데이터. 연산이나 함수의 결과 WHEN 조건1 THEN 조건 1의 결과값이 true일 때, 반환할 결과 .... ELSE 위 조건들이 모두 일치하는 경우가 없을 때 반환할 결과 |
SELECT EMPNO, ENAME, JOB, SAL, CASE JOB WHEN 'MANAGER' THEN SAL*1.1 WHEN 'SALESMAN' THEN SAL*1.05Eㄷ WHEN 'ANALYST' THEN SAL ELSE SAL*1.03 END AS UPSAL FROM EMP; |
▲내용은 DECODE 예시와 같음 .단지 디코드를 썼냐 케이스문을 섰냐의 차이
회계팀같은 곳에서 급여 관리할 때 유용하게 사용하겠단 생각이 스쳐간답
'오라클(Oracle) 데이터 베이스' 카테고리의 다른 글
단일행 서브 쿼리 (0) | 2021.12.10 |
---|---|
오라클(Oracle) 조인 총정리: 나만 알아볼 수 있을 듯? (0) | 2021.12.08 |
오라클(Oracle) INSTR 함수 (0) | 2021.12.02 |
오라클(Oracle) dual(듀얼) ? (0) | 2021.12.02 |
SCOTT 스키마 데이터로 연습한 오라클(Oracle)연산자 종류-in, between, like (0) | 2021.12.02 |