
Podczas pracy z bazami danych często spotykam się z koniecznością obsługi wartości NULL. Jednym z ciekawszych i nieco mniej znanych operatorów SQL, który pomaga w takich sytuacjach, jest NULLIF
. W tym artykule wyjaśnię, jak działa NULLIF
w języku SQL, przedstawię konkretne przykłady zastosowania oraz pokażę, kiedy warto z niego skorzystać.
Co to jest NULLIF w SQL?
NULLIF
to funkcja w SQL, która porównuje dwa argumenty i zwraca NULL
, jeśli są one równe. Jeśli argumenty są różne, zwraca pierwszy z nich. To bardzo przydatne narzędzie, gdy chcemy zapobiec dzieleniu przez zero lub ukryć pewne wartości w wynikach zapytań.
Składnia NULLIF
Podstawowa składnia funkcji NULLIF
wygląda następująco:
NULLIF(wyrażenie1, wyrażenie2)
Wytłumaczmy, co to oznacza:
- wyrażenie1 – pierwsza wartość do porównania (np. kolumna, liczba lub wyrażenie).
- wyrażenie2 – druga wartość do porównania.
Jeśli wyrażenie1
i wyrażenie2
są równe, funkcja zwróci NULL
. W przeciwnym razie zwróci wyrażenie1
.
Przykłady zastosowania NULLIF
1. Podstawowe użycie NULLIF
Załóżmy, że chcemy sprawdzić, czy dwie wartości są równe, i zwrócić NULL
zamiast wartości, jeśli tak jest.
SELECT NULLIF(10, 10) AS wynik1,
NULLIF(10, 5) AS wynik2;
Wynik tego zapytania będzie następujący:
wynik1 | wynik2 |
---|---|
NULL | 10 |
W pierwszym przypadku NULLIF(10, 10)
zwraca NULL
, ponieważ wartości są równe. W drugim przypadku NULLIF(10, 5)
zwraca 10
, ponieważ wartości są różne.
2. Zapobieganie błędom dzielenia przez zero
Jednym z praktycznych zastosowań NULLIF
jest unikanie błędów dzielenia przez zero. Przykładowo:
SELECT 100 / NULLIF(0, 0) AS wynik;
Gdybyśmy użyli klasycznego podziału 100 / 0
, SQL zgłosiłby błąd. Jednak dzięki NULLIF(0, 0)
, zamiast zera otrzymamy NULL
, co zapobiegnie błędowi.
Kiedy warto używać NULLIF?
Funkcja NULLIF
jest przydatna w różnych sytuacjach, takich jak:
- Zapobieganie dzieleniu przez zero – unikanie błędów w obliczeniach.
- Obsługa wartości domyślnych – ukrywanie pewnych niepożądanych wartości.
- Porównywanie kolumn – sprawdzanie, czy dwie wartości są równe, bez konieczności stosowania instrukcji warunkowych.
Podsumowanie
NULLIF
to funkcja SQL, która zwraca NULL
, jeśli dwa podane argumenty są sobie równe. Jest niezwykle przydatna w zapobieganiu błędom dzielenia przez zero oraz w sytuacjach wymagających dynamicznej obsługi wartości. Dzięki jej prostocie i skuteczności warto ją znać i stosować tam, gdzie to konieczne.
Inny ciekawy artykuł:
Jak działa COALESCE w języku SQL? Przykłady zastosowania
Opanuj SQL z moim kursem!
Poznasz zarówno podstawy, jak i zaawansowane zapytania analityczne (CTE, subqueries, window functions). Nauczysz się pracować na różnych silnikach – na kursie pracujemy zarówno na MySQL, jak i na Postgres. Wszystko zainstalujemy na Twoim komputerze, plus dostaniesz mnóstwo zestawów danych do ćwiczeń.
Zostań analitykiem danych – dołącz do KajoDataSpace!
Najlepsza ścieżka do zawodu analityka danych. Dostęp do pełnych wersji kursów online z Excela, SQLa, Tableau i Pythona z certyfikatami + specjalistycznych webinarów z PowerBI.
Ekskluzywana ale pomagająca sobie społeczność.
Ponad 61 godzin materiałów video.
Spotkania LIVE co miesiąc.
Mój osobisty mentoring.