Lucrul cu valori NULL

Introducere în Oracle SQL

Hadrien Lacroix

Content Developer

Ce sunt valorile NULL?

  • Nicio valoare
  • Nu este același lucru cu 0
  • Expresiile aritmetice cu NULL returnează NULL
    • NULL + 10 = NULL
  • Funcțiile de agregare ignoră de obicei valorile NULL
    • COUNT nu numără valorile NULL dintr-o coloană
Introducere în Oracle SQL

De ce contează valorile null?

Datele reale nu sunt perfecte.

  • Curățarea datelor
  • Analiza datelor lipsă
Introducere în Oracle SQL

Testarea valorilor NULL

= nu poate fi folosit pentru a testa valorile NULL

În schimb, utilizați:

  • IS NULL
    SELECT * FROM Customer WHERE LastName IS NULL
    
  • IS NOT NULL
    SELECT * FROM Customer WHERE LastName IS NOT NULL
    
Introducere în Oracle SQL

NVL

NVL(x, y): convertește x, care poate conține o valoare nulă, în y, o valoare non-nulă.

SELECT NVL(HireDate, '11/19/2004')
FROM Employee
Introducere în Oracle SQL

NULLIF

NULLIF(x, y): Compară x și y, returnează

  • NULL dacă x=y
  • x dacă nu sunt egale
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   |
Introducere în Oracle SQL

COALESCE

COALESCE: returnează prima valoare non-nulă dintr-o listă

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       |
Introducere în Oracle SQL

Să exersăm!

Introducere în Oracle SQL

Preparing Video For Download...