NULL 값 다루기

Oracle SQL 입문

Hadrien Lacroix

Content Developer

NULL 값이란?

  • 값이 없음
  • 0과 다름
  • NULL이 포함된 산술식 결과는 NULL
    • NULL + 10 = NULL
  • 집계 함수는 보통 NULL을 무시
    • COUNT는 열의 NULL을 세지 않음
Oracle SQL 입문

왜 NULL 값을 신경 쓰나요?

현실 데이터는 완벽하지 않습니다.

  • 데이터 정제
  • 결측치 분석
Oracle SQL 입문

값이 NULL인지 테스트하기

=로는 NULL을 비교할 수 없습니다

대신 다음을 사용:

  • IS NULL
    SELECT * FROM Customer WHERE LastName IS NULL
    
  • IS NOT NULL
    SELECT * FROM Customer WHERE LastName IS NOT NULL
    
Oracle SQL 입문

NVL

NVL(x, y): NULL일 수 있는 x를 NULL이 아닌 y로 변환.

SELECT NVL(HireDate, '11/19/2004')
FROM Employee
Oracle SQL 입문

NULLIF

NULLIF(x, y): xy를 비교하여 반환:

  • x=y이면 NULL
  • 다르면 x
SELECT c.CustomerId, i.BillingCity, c.City, NULLIF(i.BillingCity, c.City) 
FROM Invoice i, Customer c
| CustomerId | BillingCity | City      | NULLIF |
|------------|-------------|-----------|--------|
| 48         | Oslo        | Amsterdam | Oslo   |
| 49         | Boston      | Vienne    | Boston |
| 59         | London      | London    | NULL   |
Oracle SQL 입문

COALESCE

COALESCE: 목록에서 첫 번째 NULL이 아닌 값을 반환

SELECT CustomerId, COALESCE(phone, email, fax) AS ContactMethod
FROM Customer
| CustomerId | ContactMethod           |
|------------|-------------------------|
| 59         | +91 080 22289999        |
| 58         | [email protected] |
| 57         | +56 (0)2 635 4444       |
Oracle SQL 입문

실습해 봅시다!

Oracle SQL 입문

Preparing Video For Download...