Problème :
Vous souhaitez rechercher des enregistrements sans NULL dans une colonne.
Exemple :
Notre base de données a une table nommée product
avec des données sur trois colonnes :id
, name
, et price
.
identifiant | nom | prix |
---|---|---|
1 | beurre | NULL |
2 | lait | 2.35 |
3 | pain | 3.25 |
4 | fromage | NULL |
Trouvons les noms et les prix des produits qui ont un prix (sans NULL). Pour ce faire, utilisez l'opérateur IS NOT NULL.
Solution :
SELECT name, price FROM product WHERE price IS NOT NULL;
Voici le résultat de la requête :
nom | prix |
---|---|
lait | 2.35 |
pain | 3.25 |
Cela ne renvoie que les enregistrements sans NULL dans la colonne, donc seuls les noms et les prix du lait et du pain sont présents. Le beurre et le fromage n'ont pas de prix (la colonne price
est NULL) afin que vous ne les voyiez pas.
Discussion :
Pour afficher les enregistrements sans NULL dans une colonne, utilisez l'opérateur IS NOT NULL. Vous n'avez besoin que du nom de la colonne (ou d'une expression) et de l'opérateur IS NOT NULL (dans notre exemple, le price IS NOT NULL
). Mettez cette condition dans la clause WHERE (dans notre exemple, WHERE price IS NOT NULL
), qui filtre les lignes.
Si la condition est vraie, cela signifie que la colonne ne stocke pas de NULL. La ligne est renvoyée si elle a une valeur dans cette colonne (la colonne n'est pas NULL). D'en haut, la requête ne renvoie que deux produits, le lait et le pain, car ils ont des valeurs dans price
.