W języku SQL możemy użyć operatora IS NOT NULL do odfiltrowania wyników z tabeli bazy danych, w której wartość określonej kolumny nie jest równa null. Może to pomóc w zapewnieniu czystych danych, które nie zawierają żadnych brakujących wartości, co może powodować problemy, zwłaszcza w przypadku funkcji, które nie obsługują wartości NULL.
Wartość NULL odnosi się do braku danych, które nie zawierają pustych ciągów znaków, zera liczbowego lub NaN.
W tym samouczku dowiemy się, jak za pomocą operatora IS NOT NULL odfiltrować wyniki zawierające w danym zapytaniu wartości NULL.
Składnia:
Możemy wyrazić podstawową składnię warunku IS NOT NULL, jak pokazano w poniższym fragmencie kodu:
WYBIERZ kolumnę 1, kolumnę 2, ...
Z nazwa_tabeli
GDZIE nazwa_kolumny NIE JEST NULL;
Zaczynamy od słowa kluczowego „select” i określamy kolumny, które chcemy pobrać w zestawie wynikowym, a następnie nazwę tabeli, z której chcemy pobrać dane.
Następnie za pomocą klauzuli WHERE wprowadzamy filtrowanie danych na podstawie konkretnej kolumny. Na koniec określamy warunek, według którego chcemy filtrować.
Przykład 1:
Przyjrzyjmy się kilku przykładom wykorzystania warunku IS NOT NULL do odfiltrowania wyników.
Rozważ przykładową bazę danych Sakila, którą można bezpłatnie pobrać z oficjalnej strony MySQL.
Załóżmy, że chcemy pobrać nazwę klienta, którego „nazwisko” nie jest równe null. Aby to osiągnąć, możemy użyć zapytania, jak pokazano poniżej:
wybierać*
z
klient C
Gdzie
nazwisko_nazwisko nie ma wartości null;
W tym przypadku zapytanie zwraca wszystkie wiersze z tabeli klientów, w których wartość kolumny „nazwisko” nie jest równa null.
Przykład 2: Operatory AND i OR
Możemy połączyć warunek IS NOT NULL z innymi warunkami za pomocą operatorów AND i OR. Zapewnia to bardziej szczegółowe filtrowanie.
Załóżmy na przykład, że chcemy pobrać klientów, których „nazwisko” nie ma wartości null i których imię to Nancy lub Holly.
Możemy użyć zapytania, jak pokazano poniżej:
WYBIERAĆIdentyfikator klienta,
imię,
nazwisko,
Z
klient
GDZIE
nazwisko NIE JEST NULL
I ( imię_imie = „Nancy”
LUB imię = 'Ostrokrzew' ) ;
W tym zapytaniu łączymy warunek IS NOT NULL z operatorami AND i OR, aby odfiltrować rekordy, w których nazwisko nie ma wartości null lub imię jest równe Nancy lub Holly.
Wynikowy wynik jest następujący:
Jak widać, umożliwia to bardziej szczegółowe i drobne filtrowanie danych docelowych.
Przykład 3: Korzystanie z funkcji agregujących
Funkcji IS NOT NULL możemy także używać w połączeniu z funkcjami agregującymi SQL. Na przykład możemy użyć go z funkcją count() do zliczenia wartości innych niż null w danej kolumnie.
Załóżmy na przykład, że chcemy określić liczbę klientów z adresami e-mail różnymi od null. Zapytania możemy użyć w następujący sposób:
WYBIERAĆLICZYĆ ( Identyfikator klienta ) JAKO ogółem
Z
klient
GDZIE
adres e-mail NIE JEST NULL;
Powinno to zwrócić liczbę wartości innych niż null w kolumnie jako wartość liczbową w następujący sposób:
-----+
599 |
Wniosek
W tym samouczku dowiedzieliśmy się wszystkiego o warunku IS NOT NULL w języku SQL służącym do odfiltrowywania wartości null z danego zestawu wyników lub tabeli bazy danych. Dowiedzieliśmy się również, jak stworzyć bardziej złożone filtrowanie, łącząc warunek IS NOT NULL z innymi warunkami za pomocą operatorów AND i OR.