Làm việc với giá trị NULL

Giới thiệu về Oracle SQL

Hadrien Lacroix

Content Developer

NULL là gì?

  • Không có giá trị
  • Không giống 0
  • Biểu thức số học với NULL cho kết quả NULL
    • NULL + 10 = NULL
  • Hàm tổng hợp thường bỏ qua NULL
    • COUNT không đếm NULL trong cột
Giới thiệu về Oracle SQL

Vì sao cần quan tâm đến giá trị null?

Dữ liệu thực tế không hoàn hảo.

  • Làm sạch dữ liệu
  • Phân tích dữ liệu thiếu
Giới thiệu về Oracle SQL

Kiểm tra giá trị NULL

Không dùng = để kiểm tra NULL

Thay vào đó dùng:

  • IS NULL
    SELECT * FROM Customer WHERE LastName IS NULL
    
  • IS NOT NULL
    SELECT * FROM Customer WHERE LastName IS NOT NULL
    
Giới thiệu về Oracle SQL

NVL

NVL(x, y): chuyển x (có thể NULL) thành y (không NULL).

SELECT NVL(HireDate, '11/19/2004')
FROM Employee
Giới thiệu về Oracle SQL

NULLIF

NULLIF(x, y): So sánh xy, trả về

  • NULL nếu x=y
  • x nếu không bằng nhau
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   |
Giới thiệu về Oracle SQL

COALESCE

COALESCE: trả về giá trị đầu tiên không NULL trong danh sách

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       |
Giới thiệu về Oracle SQL

Ayo berlatih!

Giới thiệu về Oracle SQL

Preparing Video For Download...