Lavorare con i valori NULL

Introduzione a Oracle SQL

Hadrien Lacroix

Content Developer

Cosa sono i valori NULL?

  • Nessun valore
  • Non è uguale a 0
  • Le espressioni aritmetiche con NULL restituiscono NULL
    • NULL + 10 = NULL
  • Le funzioni di aggregazione di solito ignorano i NULL
    • COUNT non conta i NULL in una colonna
Introduzione a Oracle SQL

Perché ci interessano i valori null?

I dati reali non sono perfetti.

  • Pulisci i dati
  • Analizza i dati mancanti
Introduzione a Oracle SQL

Verificare se un valore è NULL

= non si usa per verificare i valori NULL

Usa invece:

  • IS NULL
    SELECT * FROM Customer WHERE LastName IS NULL
    
  • IS NOT NULL
    SELECT * FROM Customer WHERE LastName IS NOT NULL
    
Introduzione a Oracle SQL

NVL

NVL(x, y): converte x, che può essere NULL, in y, un valore non nullo.

SELECT NVL(HireDate, '11/19/2004')
FROM Employee
Introduzione a Oracle SQL

NULLIF

NULLIF(x, y): Confronta x e y, restituisce

  • NULL se x=y
  • x se non sono uguali
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   |
Introduzione a Oracle SQL

COALESCE

COALESCE: restituisce il primo valore non nullo in un elenco

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       |
Introduzione a Oracle SQL

Esercitiamoci!

Introduzione a Oracle SQL

Preparing Video For Download...