본문 바로가기
DataBase/Data & SQL

[SQL] NULL 과 NULL처리 함수,연산자

by 스파이디웹 2021. 3. 4.
728x90

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표현식으로 처리한다.

728x90

댓글