Database
 sql >> Base de données >  >> RDS >> Database

Comment filtrer les lignes sans NULL dans une colonne

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 .