DB/ORACEL
[ ORACLE 함수 ] NULLIF, NVL, COALESCE
be-lgreen
2020. 6. 2. 16:25
항상 NULL과 관련된 함수 사용법이 헷갈려서 정리해 봤다.
NVL, NVL2, COALESCE는 NULL값이 존재하는 경우 처리하기 위한 함수라면,
NULLIF는 조건이 되면 NULL값을 만들어주는 함수라고 외우면 쉽다.
1. NULLIF
NULLIF(A, B)
A, B가 같으면 NULL, 같지 않으면 A
< 예시 >
SELECT NULLIF(SCORE, 0) FROM SCORES;
점수가 0인 경우 NULL을, 0이 아닌경우 SCORE값을 그대로 반환
2. NVL
NVL(NULL을 가진 컬럼 or 임의의 값, 대치할 값)
< 예시 - SEQ 값 넣을때 >
NVL(MAX(칼럼이름)+1, 1)
NVL(MAX(SELECT FROM WHERE)+1, 1)
3. COALESCE
COALESCE(expr1,expr2,expr3,…)
expr1이 NULL이 아니면 expr1값, NULL이면 COALESCE(expr2,expr3,…)값을 반환
NVL 함수와 비슷