Práce s hodnotami NULL

Introduction to Oracle SQL

Hadrien Lacroix

Content Developer

Co jsou hodnoty NULL?

  • Žádná hodnota
  • Není totéž jako 0
  • Aritmetické výrazy s NULL vrátí NULL
    • NULL + 10 = NULL
  • Agregační funkce hodnoty NULL obvykle ignorují
    • COUNT nepočítá hodnoty NULL ve sloupcích
Introduction to Oracle SQL

Proč nás hodnoty NULL zajímají?

Reálná data nejsou dokonalá.

  • Čištění dat
  • Analýza chybějících dat
Introduction to Oracle SQL

Testování hodnoty NULL

= nelze použít k testování hodnot NULL

Místo toho použijte:

  • IS NULL
    SELECT * FROM Customer WHERE LastName IS NULL
    
  • IS NOT NULL
    SELECT * FROM Customer WHERE LastName IS NOT NULL
    
Introduction to Oracle SQL

NVL

NVL(x, y): převede x, které může obsahovat null, na y, hodnotu bez null.

SELECT NVL(HireDate, '11/19/2004')
FROM Employee
Introduction to Oracle SQL

NULLIF

NULLIF(x, y): porovná x a y, vrátí

  • NULL pokud x=y
  • x pokud se nerovnají
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   |
Introduction to Oracle SQL

COALESCE

COALESCE: vrátí první hodnotu, která není null

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       |
Introduction to Oracle SQL

Pojďme si procvičit!

Introduction to Oracle SQL

Preparing Video For Download...