Problem:
Chcesz znaleźć rekordy bez wartości NULL w kolumnie.
Przykład:
Nasza baza danych zawiera tabelę o nazwie product
z danymi w trzech kolumnach:id
, name
i price
.
id | imię | cena |
---|---|---|
1 | masło | NULL |
2 | mleko | 2,35 |
3 | chleb | 3,25 |
4 | ser | NULL |
Znajdźmy nazwy i ceny produktów, które mają cenę (bez NULL). Zrób to za pomocą operatora IS NOT NULL.
Rozwiązanie:
SELECT name, price FROM product WHERE price IS NOT NULL;
Oto wynik zapytania:
nazwa | cena |
---|---|
mleko | 2,35 |
chleb | 3,25 |
Zwraca to tylko rekordy bez NULL w kolumnie, więc obecne są tylko nazwy i ceny mleka i chleba. Masło i ser nie mają cen (kolumna price
jest NULL), więc ich nie widzisz.
Dyskusja:
Aby wyświetlić w kolumnie rekordy bez wartości NULL, użyj operatora IS NOT NULL. Potrzebujesz tylko nazwy kolumny (lub wyrażenia) i operatora NIE JEST NULL (w naszym przykładzie price IS NOT NULL
). Umieść ten warunek w klauzuli WHERE (w naszym przykładzie WHERE price IS NOT NULL
), który filtruje wiersze.
Jeśli warunek jest prawdziwy, oznacza to, że kolumna nie przechowuje wartości NULL. Wiersz jest zwracany, jeśli ma wartość w tej kolumnie (kolumna nie ma wartości NULL). Z góry zapytanie zwraca tylko dwa produkty, mleko i chleb, ponieważ mają one wartości w price
.