Problem:
Chcesz znaleźć rekordy z NULL w kolumnie.
Przykład:
Nasza baza danych zawiera tabelę o nazwie children z danymi w czterech kolumnach:id , first_name , middle_name i last_name .
| id | imię | drugie imię | nazwisko |
|---|---|---|---|
| 1 | Jan | Karol | Jackson |
| 2 | Tomek | NULL | Thomson |
| 3 | Lisa | Alicja | NULL |
| 4 | Anna | NULL | Kowalski |
Znajdźmy identyfikator, imię i nazwisko dzieci bez drugiego imienia (NULL w kolumnie middle_name ). Używamy do tego operatora IS NULL.
Rozwiązanie:
SELECT id, first_name, last_name FROM children WHERE middle_name IS NULL;
Oto wynik:
| id | imię | nazwisko |
|---|---|---|
| 2 | Tomek | Thomson |
| 4 | Anna | Kowalski |
Zwraca tylko rekordy z NULL w middle_name , więc Tom i Anne są obecni, ale nie John i Lisa, którzy mają drugie imiona.
Dyskusja:
Użyj IS NULL operator w warunku z WHERE, aby znaleźć rekordy z NULL w kolumnie. Oczywiście możesz również użyć dowolnego wyrażenia zamiast nazwy kolumny i sprawdzić, czy zwraca ona NULL. Nie potrzeba nic więcej niż nazwa kolumny i operator IS NULL (w naszym przykładzie middle_name IS NULL ). Umieść ten warunek w klauzuli WHERE, aby filtrować wiersze (w naszym przykładzie WHERE middle_name IS NULL ). Jeśli warunek jest spełniony, kolumna przechowuje NULL i zwracany jest ten wiersz. Powyższe zapytanie zwraca tylko dwa rekordy z dziećmi Tom i Anne, które nie mają drugiego imienia, więc kolumna middle_name przechowuje NULL.