-
Oracle 함수(Function) - NULL 처리 함수와 선택 함수데이터베이스/Oracle 2020. 11. 11. 12:49728x90반응형
NULL 처리 함수
NULL 처리 함수란 해당 컬럼값이 NULL인 경우 대체값을 사용하는 함수이다.
NULL 처리 함수의 NVL과 NVL2 를 알아보자
NVL
NVL이란 NULL로 되어 있는 컬럼의 값을 인자로 지정한 숫자 혹은 문자로 변경하여 반환한다.
- P1 : NULL데이터를 처리할 컬럼명 혹은 값
- P2 : NULL값을 대체하고자 하는 값
[ NVL 예시 ]
SELECT EMP_NO, EMP_NAME, SALARY, NVL(BONUS, 0), -- BONUS가 Null값이면 0으로 (SALARY + (SALARY * NVL(BONUS, 0)))*12 FROM EMPLOYEE;
NVL2
NVL2란 컬럼명이 NULL이 아닌 경우 대체 하고자 하는 값을 적고
NULL인 경우 대체 하고자 하는 값을 적는다.
즉 NULL값인 경우와 NULL값이 아닌 경우에 대체값들을 각각 준다.
작성법: NVL2(컬럼명, P1, P2)
- P1 : NULL이 아닌 경우 대체값
- P2 : NULL인 경우 대체값
[ NVL2 예시 ]
- EMPLOYEE 테이블에서 기존에 보너스를 받지 못하던 사원은
보너스율을 0.3 받던 사원은 0.8로 변경하여
사원명, 기존 보너스, 변경된 보너스 조회
SELECT EMP_NAME, BONUS, NVL2(BONUS, 0.8, 0.3) FROM EMPLOYEE;
선택 함수
선택함수란 여러 가지 경우에 따라 선택을 할 수 있는 기능을 제공하는 함수이다.
여러가지 선택함수를 알아보자.
DECODE
DECODE란 비교하고자 하는 값 또는 컬럼이 조건식과 같으면 결과 값 반환한다.
- 표현식 : 값에 따라 선택을 다르게 할 컬럼 혹은 값
- 조건 : 해당 값이 참인지 거짓인지 여부 판단
- 결과 : 해당 조건과 일치하는 경우 반환할 값
- DEFAULT : 모든 조건이 불일치 시 반환할 값
[ DECODE 예시 ]
SELECT EMP_ID, EMP_NAME, EMP_NO, DECODE(SUBSTR(EMP_NO, 8, 1), ‘1’, ‘남’, ‘2’, ‘여‘) AS 성별 FROM EMPLOYEE;
CASE
CASE란 비교하고자 하는 값 또는 컬럼이 조건식과 같으면 결과 값 반환(조건은 범위 값 가능)한다.
- 조건 : 해당 값이 참인지 거짓인지 여부 판단
- 결과 : 해당 조건과 일치하는 경우 반환할 값
- DEFAULT : 모든 조건이 불일치 시 반환할 값
[ CASE 예시 ]
하나의 조건일 때
SELECT EMP_ID, EMP_NAME, EMP_NO, CASE WHEN SUBSTR(EMP_NO, 8, 1) = 1 THEN ‘남’ ELSE ‘여’ END AS 성별 FROM EMPLOYEE;
여러개의 조건일 때
SELECT EMP_NAME, SALARY, CASE WHEN SALARY > 5000000 THEN '1등급‘ WHEN SALARY > 3500000 THEN '2등급‘ WHEN SALARY > 2000000 THEN '3등급' ELSE '4등급‘ END 등급 FROM EMPLOYEE;
728x90반응형'데이터베이스 > Oracle' 카테고리의 다른 글
Oracle - ORDER BY / GROUP BY / HAVING (0) 2020.11.11 Oracle 함수(Function) - 그룹 함수 (0) 2020.11.11 Oracle 함수(Function) - 형 변환 함수 (0) 2020.11.11 Oracle 함수(Function) - 날짜 처리 함수 (0) 2020.11.10 Oracle 함수(Function) - 숫자 처리 함수 (0) 2020.11.10