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

Comment trouver des enregistrements avec NULL dans une colonne

Problème :

Vous souhaitez rechercher des enregistrements avec NULL dans une colonne.

Exemple :

Notre base de données a une table nommée children avec des données sur quatre colonnes :id , first_name , middle_name , et last_name .

identifiant prénom deuxième_prénom nom_de_famille
1 Jean Carl Jackson
2 Tom NULL Thomson
3 Lisa Alice NULL
4 Anne NULL Smith

Trouvons l'identifiant, le prénom et le nom des enfants sans deuxième prénom (NULL dans la colonne middle_name ). Nous utilisons l'opérateur IS NULL pour cela.

Solution :

SELECT id,
  first_name,
  last_name
FROM children
WHERE middle_name IS NULL;

Voici le résultat :

identifiant prénom nom_de_famille
2 Tom Thomson
4 Anne Smith

Cela ne renvoie que les enregistrements avec NULL dans middle_name , donc Tom et Anne sont présents, mais pas John et Lisa qui ont des prénoms.

Discussion :

Utilisez le IS NULL opérateur dans une condition avec WHERE pour rechercher des enregistrements avec NULL dans une colonne. Bien sûr, vous pouvez également utiliser n'importe quelle expression au lieu d'un nom de colonne et vérifier si elle renvoie NULL. Rien de plus que le nom d'une colonne et l'opérateur IS NULL est nécessaire (dans notre exemple, middle_name IS NULL ). Mettez cette condition dans la clause WHERE pour filtrer les lignes (dans notre exemple, WHERE middle_name IS NULL ). Si la condition est vraie, la colonne stocke un NULL et cette ligne est renvoyée. Ci-dessus, la requête ne renvoie que deux enregistrements avec les enfants Tom et Anne, qui n'ont pas de deuxième prénom, donc la colonne middle_name stocke NULL.