sql >> Database >  >> RDS >> Database

Records zoeken met NULL in een kolom

Probleem:

U wilt records vinden met NULL in een kolom.

Voorbeeld:

Onze database heeft een tabel met de naam children met gegevens in vier kolommen:id , first_name , middle_name , en last_name .

id voornaam middle_name achternaam
1 Jan Carl Jackson
2 Tom NULL Thomson
3 Lisa Alice NULL
4 Anna NULL Smith

Laten we de id, voornaam en achternaam zoeken van kinderen zonder tweede naam (NULL in kolom middle_name ). We gebruiken hiervoor de IS NULL-operator.

Oplossing:

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

Dit is het resultaat:

id voornaam achternaam
2 Tom Thomson
4 Anna Smith

Dit retourneert alleen records met NULL in middle_name , dus Tom en Anne zijn aanwezig, maar niet John en Lisa die een tweede naam hebben.

Discussie:

Gebruik de IS NULL operator in een voorwaarde met WHERE om records met NULL in een kolom te vinden. U kunt natuurlijk ook een willekeurige uitdrukking gebruiken in plaats van een naam van een kolom en controleren of deze NULL retourneert. Niets meer dan de naam van een kolom en de operator IS NULL is nodig (in ons voorbeeld middle_name IS NULL ). Zet deze voorwaarde in de WHERE-component om rijen te filteren (in ons voorbeeld WHERE middle_name IS NULL ). Als de voorwaarde waar is, slaat de kolom een ​​NULL op en wordt deze rij geretourneerd. Hierboven retourneert de query slechts twee records met kinderen Tom en Anne, die geen middelste namen hebben, dus de kolom middle_name slaat NULL op.


  1. Een PostgreSQL-gebruiker maken en deze toevoegen aan een database

  2. Het SQL Server-transactielogboek, deel 3:Basisprincipes van logboekregistratie

  3. Hoe SQL-cursors voor speciale doeleinden te gebruiken

  4. Rijen en kolommen transponeren zonder aggregatie