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 리턴.
반응형
'Database > Oracle' 카테고리의 다른 글
[Oracle/SQL] count(*), count(칼럼) 차이 (0) | 2020.05.09 |
---|---|
[Oracle/SQL] 서브쿼리(SubQuery) (0) | 2020.04.22 |
[Oracle/SQL] CREATE 명령어(ORACLE) (0) | 2020.04.19 |
[Oracle/SQL] ORDER BY 절 (0) | 2020.04.15 |
[Oracle] 오라클 SQL 무료 테스트하기 (0) | 2020.04.15 |
댓글