Database/Oracle
[Oracle/SQL] NULL 관련 함수 (NVL, NVL2, ISNULL, NULLIF, COALESE)
챠챠12
2020. 4. 15. 01:13
NULL 이란, 아직 정의되지 않은 값으로 0 또는 공백과 다릅니다. ( 0은 숫자이고, 공백은 하나의 문자 )
Oracle의 경우에는 VARCHAR2 데이터 타입에 '' 를 INSERT 하면 NULL로 바뀌어 저장됩니다.
NULL 포함 연산의 결과는 모두 NULL 입니다.
결과값을 NULL이 아닌 다른 값을 얻고자 할 때 ISNULL/NVL 함수를 사용합니다.
1. ISNULL() 함수
- ISNULL( expr1, expr2) [ SQL Server 환경 ]
: 함수의 결과 값이 NULL일 경우 지정된 값을 반환. ( 칼럼의 NULL 값 확인할 때 )
2. NVL() 함수
- NVL( expr1, expr2) [ Oracle 환경 ]
: NULL 값을 다른 값으로 대체 할 때 사용하며, 모든 데이터 타입에 적용 가능.
3. NVL2() 함수
- NVL2( expr1, expr2, expr3)
4. NULLIF() 함수
- NULLIF( expr1, expr2)
: expr1 = expr2 이면 NULL / expr1 != expr2 이면 expr1 리턴.
5. COALESCE() 함수
- COALESCE( expr1, expr2, ... , exprN )
: 임의의 개수 표현식(exprN)에서 NULL이 아닌 첫번째 표현식을 리턴.
COALESE(NULL, NULL, 1024); // 1024의 값 리턴.COALESE(1024, 23); // 1024의 값 리턴.COALESE(NULL, 23); // 23의 값 리턴.
: expr1, expr2, ... (모든 exprN)이 NULL이면 NULL 리턴.
COALESE(NULL, NULL, NULL); // NULL 리턴.
반응형