[Oracle] 단일함수 - 일반함수

chael_lo·2021년 6월 30일
0

Oracle

목록 보기
12/17

NVL(컬럼명,변경값)

컬럼값이 NULL인 경우 변경값으로 변환하여 반환하는 함수
변경값은 컬럼의 자료형과 동일한 자료형의 값으로 변경하지 않으면 에러가 발생한다.

--NVL 함수를 사용하여 성과급이 NULL인 경우 0으로 변환하여 연산 처리
SELECT EMPNO,ENAME,(SAL+NVL(COMM,0))*12 ANNUAL FROM EMP;

NVL2(컬럼명,변경값1,변경값2)

컬럼값이 NULL이 아닌 경우 변경값1로 변환하고 NULL인 경우 변경값2으로 변환하여 반환하는 함수

SELECT EMPNO,ENAME,NVL2(COMM,SAL+COMM,SAL)*12 ANNUAL FROM EMP;

DECODE(컬럼명,비교값1,변경값1,비교값2,변경값2,...[,기본변경값])

컬럼값을 비교값과 차례대로 비교하여 같은 경우 변경값으로 변환하여 반환하는 함수

DECODE 반환값

  • 컬럼값이 모든 비교값과 다른 경우 - 기본 변경값으로 변환하여 반환
  • 기본 변경값이 생략된 경우 - NULL을 반환
--ANALYST : 급여*1.1, CLERK : 급여*1.2, MANAGER : 급여*1.3, 
--PRESIDENT : 급여*1.4, SALESMAN : 급여*1.5
SELECT EMPNO,ENAME,JOB,SAL,
DECODE(JOB,'ANALYST',SAL*1.1,'CLERK',SAL*1.2,'MANAGER',SAL*1.3
    ,'PRESIDENT',SAL*1.4,'SALESMAN',SAL*1.5,SAL) "업무별 실급여" 
FROM EMP;

profile
천천히 꾸준히

0개의 댓글