Arbeta med NULL-värden

Introduktion till Oracle SQL

Hadrien Lacroix

Content Developer

Vad är NULL-värden?

  • Inget värde
  • Inte samma sak som 0
  • Aritmetiska uttryck med NULL ger NULL
    • NULL + 10 = NULL
  • Aggregatfunktioner ignorerar vanligtvis NULL-värden
    • COUNT räknar inte NULL-värden i en kolumn
Introduktion till Oracle SQL

Varför bryr vi oss om null-värden?

Verklig data är inte perfekt.

  • Rensa data
  • Analysera saknade värden
Introduktion till Oracle SQL

Testa om ett värde är NULL

= kan inte användas för att testa NULL-värden

Använd i stället:

  • IS NULL
    SELECT * FROM Customer WHERE LastName IS NULL
    
  • IS NOT NULL
    SELECT * FROM Customer WHERE LastName IS NOT NULL
    
Introduktion till Oracle SQL

NVL

NVL(x, y): konverterar x, som kan innehålla ett null-värde, till y, ett värde som inte är null.

SELECT NVL(HireDate, '11/19/2004')
FROM Employee
Introduktion till Oracle SQL

NULLIF

NULLIF(x, y): Jämför x och y, returnerar

  • NULL om x=y
  • x om de inte är lika
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   |
Introduktion till Oracle SQL

COALESCE

COALESCE: returnerar det första värdet som inte är null i en lista

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       |
Introduktion till Oracle SQL

Nu kör vi en övning!

Introduktion till Oracle SQL

Preparing Video For Download...