Problém:
Chcete najít záznamy s NULL ve sloupci.
Příklad:
Naše databáze obsahuje tabulku s názvem children
s údaji ve čtyřech sloupcích:id
, first_name
, middle_name
a last_name
.
id | first_name | prostřední_jméno | last_name |
---|---|---|---|
1 | Jan | Carl | Jackson |
2 | Tome | NULL | Thomson |
3 | Lisa | Alice | NULL |
4 | Anne | NULL | Smith |
Pojďme najít id, jméno a příjmení dětí bez druhého jména (NULL ve sloupci middle_name
). K tomu používáme operátor IS NULL.
Řešení:
SELECT id, first_name, last_name FROM children WHERE middle_name IS NULL;
Zde je výsledek:
id | first_name | last_name |
---|---|---|
2 | Tome | Thomson |
4 | Anne | Smith |
To vrátí pouze záznamy s NULL v middle_name
, takže jsou přítomni Tom a Anne, ale ne John a Lisa, kteří mají prostřední jména.
Diskuse:
Použijte IS NULL
operátor ve stavu s WHERE k nalezení záznamů s NULL ve sloupci. Samozřejmě můžete také použít libovolný výraz místo názvu sloupce a zkontrolovat, zda vrací NULL. Není potřeba nic víc než název sloupce a operátor IS NULL (v našem příkladu middle_name IS NULL
). Chcete-li filtrovat řádky, vložte tuto podmínku do klauzule WHERE (v našem příkladu WHERE middle_name IS NULL
). Pokud je podmínka pravdivá, sloupec ukládá hodnotu NULL a tento řádek je vrácen. Výše uvedený dotaz vrátí pouze dva záznamy s dětmi Tomem a Anne, kteří nemají prostřední jména, takže sloupec middle_name
ukládá NULL.