본문 바로가기
SQL Professional

[독학! SQLP] NULL에 관하여!

by 개발자의 2025. 8. 19.

NULL의 기본 개념

  • NULL ≠ 공백, NULL ≠ 0
  • 집계 함수에서는 NULL 값이 연산 대상에서 제외됨 (SUM, AVG 등).
  • 사칙연산에 NULL이 포함되면 결과는 항상 NULL.
    • 예: 10 + NULL → NULL
  • 비교 연산(=, >, <, >=, <=)에서 NULL은 항상 False로 간주됨.
  • 부정 비교 연산(!=, <>, NOT 칼럼명 =...) 역시 조건 만족하지 않음.
  • 조건절에서 NULL 비교 시 반드시 IS NULL 또는 IS NOT NULL 사용.

NULL 관련 단일행 함수

  • NVL(표현식 1, 표현식 2) (Oracle) / ISNULL(표현식 1, 표현식 2) (SQL Server) → 표현식1이 NULL이면 표현식 2 반환.
  • NULLIF(표현식 1, 표현식 2)→ 두 값이 같으면 NULL, 다르면 표현식 1 반환.
    • 예: NULLIF(10, 10) → NULL, NULLIF(10, 20) → 10
  • COALESCE(표현식 1, 표현식 2, …) → 인수 중 처음으로 NULL이 아닌 값 반환.
    • 예: COALESCE(NULL, NULL, 'A', 'B') → 'A'

NULL과 정렬 (DBMS별 차이)

  • Oracle
    • NULL을 가장 "큰 값"으로 취급
    • ORDER BY ASC → 맨 뒤
    • ORDER BY DESC → 맨 앞
  • SQL Server
    • NULL을 가장 "작은 값"으로 취급
    • ORDER BY ASC → 맨 앞
    • ORDER BY DESC → 맨 뒤
정렬 시 DBMS마다 다르게 동작하므로 시험이나 실무에서 반드시 주의!