NULL이란
알려지지않은 값(unknown),정해지지 않은 값으로 공백과 0과는 다른 개념.
ORACLE NULL처리함수
NVL(컬럼명,지정값)
-입력한 컬럼명의 값이 null인 경우 지정값으로 대체
NVL2(컬럼명,지정값1,지정값2)
-입력한 컬럼명의 값이 null이 아닌경우 지정값1로 대체, null인 경우 지정값2로 대체
ORACLE및 다른 모든 DBMS NULL처리 함수
COALESCE(expr1,expr2,expr3,…)
-expr1이 NULL이 아니면 expr1값을,
그렇지 않으면 COALESCE(expr2,expr3,…)값을 반환.
-주어진 인수에서 첫번째로 null이 아닌 값을 반환
ex1)
COALESCE(empno,1)
empno가 null이면 1
empno가 null이 아니면 empno값을 반환
ex2)
COALESCE(empno,empno2,empno3,empno4)
첫번째로 null이 아닌 값이 나오는 값(표현식)을 반환
MYSQL/MariaDB
NULLIF(expr1, expr2)
-expr1값과 expr2값이 동일하면 NULL을,
그렇지 않으면 expr1을 반환
==CASE WHEN expr1 = expr2 THEN NULL ELSE expr1 END
IFNULL(expr1, expr2)
-expr1이 NULL이면 expr2을 리턴하고, expr1이 NULL이 아니면 expr1를 리턴한다.
NULL의 비교(연산자)
IS NULL
ex)
SELECT * FROM tab WHERE col IS NULL
==tab테이블에서 특정 컬럼(표현식)이 널인 모든 데이터 조회
IS NOT NULL
ex)
SELECT * FROM tab WHERE col IS NOT NULL
==tab테이블에서 특정 컬럼(표현식)이 널이 아닌 모든 데이터 조회
나머지는 case표현식으로 처리한다.
'DataBase > Data & SQL' 카테고리의 다른 글
[Data] 마스터 데이터 vs 트랜잭션 데이터, fact테이블 vs dimension 테이블, 시계열 데이터란? (0) | 2021.08.06 |
---|---|
[Data] 데이터 레이크(data lake)란? (0) | 2021.08.06 |
[Data&SQL] Ad-Hoc , Ad-Hoc 쿼리란? (0) | 2021.01.19 |
[Data]로그 데이터 수집 (0) | 2021.01.07 |
[Data]데이터 수집 방법 및 기술(Data Extraction) (0) | 2021.01.05 |
댓글