#820

Wykryj podstępny błąd z NULL i go ominij

Zapytanie „znajdź klientów, którzy nie mają żadnych zamówień” sformułowane za pomocą NOT IN niesie ze sobą paskudny błąd: jeśli podzapytanie zawiera choćby jeden wiersz z NULL, całe NOT IN po cichu zwraca zero wierszy — bez błędu, bez ostrzeżenia. Klasyczna pułapka logiki trójwartościowej w SQL. Bezpiecznym odpowiednikiem jest NOT EXISTS: zwraca wiersz, gdy wewnętrzne zapytanie niczego nie znalazło, i jest odporne na NULL. Przepisz sprawdzenie „klienci bez zamówień” za pomocą NOT EXISTS tak, aby zapytanie działało poprawnie nawet przy NULL w danych. Pokaż id i email takich klientów, posortuj według id.

Przykładowy oczekiwany wynik

Tak wygląda poprawna odpowiedź — liczba jej wierszy jest swoista i nie musi odpowiadać tabelom ze schematu.

idemail
3новый@email

Wynik Twojego zapytania pojawi się tutaj