Probleem:
U wilt records zoeken zonder NULL in een kolom.
Voorbeeld:
Onze database heeft een tabel met de naam product
met gegevens in drie kolommen:id
, name
, en price
.
id | naam | prijs |
---|---|---|
1 | boter | NULL |
2 | melk | 2,35 |
3 | brood | 3,25 |
4 | kaas | NULL |
Laten we de namen en prijzen zoeken van producten die een prijs hebben (zonder NULL). Doe dit met de operator IS NOT NULL.
Oplossing:
SELECT name, price FROM product WHERE price IS NOT NULL;
Dit is het resultaat van de zoekopdracht:
naam | prijs |
---|---|
melk | 2,35 |
brood | 3,25 |
Dit retourneert alleen records zonder NULL in de kolom, dus alleen de namen en prijzen van melk en brood zijn aanwezig. Boter en kaas hebben geen prijzen (de kolom price
is NULL) zodat je ze niet ziet.
Discussie:
Gebruik de operator IS NOT NULL om records zonder NULL in een kolom weer te geven. U hebt alleen de naam van de kolom (of een uitdrukking) en de operator IS NOT NULL nodig (in ons voorbeeld is de price IS NOT NULL
). Zet deze voorwaarde in de WHERE-clausule (in ons voorbeeld WHERE price IS NOT NULL
), die rijen filtert.
Als de voorwaarde waar is, geeft dit aan dat de kolom geen NULL opslaat. De rij wordt geretourneerd als deze een waarde in deze kolom heeft (de kolom is niet NULL). Van bovenaf retourneert de zoekopdracht slechts twee producten, melk en brood, omdat ze waarden hebben in price
.