Dico

SQL NULL Functions

  • 민갤

NULL 함수

  • NULL

     정해지지 않은 값.

     미확정, 알 수 없는 (unknown)값.

     0(zero), 빈 공간이 아니지만 값은 존재한다.

     연산, 할당, 비교가 불가능하다. 

     연산시 관계 컬럼도 NULL로 바뀐다.

NVL

인수(컬럼 또는 표현식)의 값이 NULL인 경우 0 또는 다른 값으로 변환한다.

두 개의 값은 반드시 데이터 타입이 일치해야 한다.

NVL(인수, 대체값)
SELECT NVL(commission_pct, 0)
 FROM employees;

NVL2

인수의 값이 NULL이 아니면 대체값1을 반환하고, NULL이면 대체값2를 반환한다.

NVL2(인수, 대체값1, 대체값2)
SELECT NVL2(commission_pct, 1, 0)
 FROM employees;

NULLIF

두 인수가 같으면 NULL을 반환하고, 다르면 첫번째 인수를 반환한다.

NULLIF(인수1, 인수2)
SELECT NULLIF('A', 'A') -- NULL
    , NULLIF('A', 'B')  -- A
 FROM dual;

COALESCE

인수 중에서 NULL이 아닌 첫번째 인수를 반환한다.

COALESCE(인수1, 인수2, ..., 인수n)

인수1이 NULL이 아니면 인수1,

인수1이 NULL이고 인수2가 NULL이 아니면 인수2,

인수n-1까지의 값이 NULL이고, 인수n이 NULL이 아니면 인수n을 반환한다.

SELECT COALESCE(commission_pct, 1, 0)
 FROM employees;