DB/ORACEL

[ ORACLE 함수 ] NULLIF, NVL, COALESCE

be-lgreen 2020. 6. 2. 16:25

항상 NULL과 관련된 함수 사용법이 헷갈려서 정리해 봤다.

 

NVL, NVL2, COALESCENULL값이 존재하는 경우 처리하기 위한 함수라면,

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 함수와 비슷