Travailler avec les valeurs NULL

Introduction à Oracle SQL

Hadrien Lacroix

Content Developer

Qu'est-ce qu'une valeur NULL ?

  • Aucune valeur
  • Différent de 0
  • Les expressions arithmétiques avec NULL donnent NULL
    • NULL + 10 = NULL
  • Les fonctions d'agrégation ignorent généralement les NULL
    • COUNT ne compte pas les NULL dans une colonne
Introduction à Oracle SQL

Pourquoi se préoccuper des valeurs nulles ?

Les données réelles ne sont pas parfaites.

  • Nettoyer les données
  • Analyser les données manquantes
Introduction à Oracle SQL

Tester si une valeur est NULL

= ne permet pas de tester les valeurs NULL

Utilisez plutôt :

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

NVL

NVL(x, y) : convertit x, qui peut être NULL, en y, une valeur non nulle.

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

NULLIF

NULLIF(x, y) : compare x et y, renvoie

  • NULL si x=y
  • x s'ils sont différents
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 à Oracle SQL

COALESCE

COALESCE : renvoie la première valeur non nulle d'une liste

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 à Oracle SQL

Passons à la pratique !

Introduction à Oracle SQL

Preparing Video For Download...