NULL 관련 함수(NVL, ISNULL, NULLIF, COALSCE)

£€€.T.$·2023년 8월 23일

NULL

  • 아직 정의 되지 않은 값(0, 공백과 다르다).
  • 테이블을 생성할 때 NOT NULL 또는 PRIMERY KEY로 정이되지 않으면 NULL을 포함할 수 있다.(UNIQUE KEY도 NULL을 포함할 수 있다)
  • NULL을 포함하는 현산의 결과는 NULL이다.
    • NULL + 1 = NULL
    • 숫자1과 NULL 상태에서 SUM을 하면 NULL을 제외한 1이 나온다.

NVL(표현식1, 표현식2) / ISNULL(표현식1, 표현식2)

표현식 1의 결과값이 NULL이면 표현식2의 값을 출력 한다.
단, 표현식1과 표현식2의 결과 데이터 타입이 같아야 한다. NULL관련해서 가장 많이 쓰이는 함수.

-- 오라클: NVL (NULL 판단 대상, 'NULL일 때 대체값')

SELECT NVL(NULL, 'NVL-OK') NVL_TEST
FROM   DUAL ;
--결과값 : NVL-OK


SELECT NVL('NOT-NULL', 'NVL-OK') NVL_TEST
FROM   DUAL ;
--결과값 : NOT-NULL (NULL이 아니니까 표현식 2가 아닌 1을 표기한 것임)

NULLIF(표현식1, 표현식2)

표현식1이 표현식2와 같으면 NULL을, 같지 않으면 표현식1을 리턴한다.
특정 값을 NULL로 변경해야 할 때 유용하게 사용할 수 있다.

-- NULLIF (표현식1, 표현식2) : 표현식1 과 2과 같으면 NULL, 다르면 표현식 1 리턴

-- MGR 7698 이면 NULL로 표시한다. 
SELECT ENAME, EMPNO, MGR, NULLIF(MGR, 7698) NUIF
FORM   EMP ; 

COALESCE(표현식1, 표현식2, ...)

임의의 개수 표현식에서 NULL이 아닌 최초의 표현식을 나타낸다.
모든 표현식이 NULL이라면 NULL을 리턴한다.

profile
Be {Nice} Be {Kind}

0개의 댓글