Praca z wartościami NULL

Wprowadzenie do Oracle SQL

Hadrien Lacroix

Content Developer

Czym są wartości NULL?

  • Brak wartości
  • Nie jest równoważna 0
  • Wyrażenia arytmetyczne z NULL dają NULL
    • NULL + 10 = NULL
  • Funkcje agregujące zwykle ignorują wartości NULL
    • COUNT nie zlicza wartości NULL w kolumnie
Wprowadzenie do Oracle SQL

Dlaczego wartości null są ważne?

Dane w rzeczywistości nie są doskonałe.

  • Czyszczenie danych
  • Analiza brakujących danych
Wprowadzenie do Oracle SQL

Sprawdzanie wartości NULL

= nie może być używane do testowania wartości NULL

Zamiast tego użyj:

  • IS NULL
    SELECT * FROM Customer WHERE LastName IS NULL
    
  • IS NOT NULL
    SELECT * FROM Customer WHERE LastName IS NOT NULL
    
Wprowadzenie do Oracle SQL

NVL

NVL(x, y): konwertuje x, które może zawierać wartość null, na y – wartość niezerową.

SELECT NVL(HireDate, '11/19/2004')
FROM Employee
Wprowadzenie do Oracle SQL

NULLIF

NULLIF(x, y): porównuje x i y, zwraca

  • NULL jeśli x=y
  • x jeśli są różne
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   |
Wprowadzenie do Oracle SQL

COALESCE

COALESCE: zwraca pierwszą wartość niezerową z listy

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       |
Wprowadzenie do Oracle SQL

Czas na ćwiczenia!

Wprowadzenie do Oracle SQL

Preparing Video For Download...