NULLIF i IIF
Część sekcji Poza podstawami ścieżki SQL w Coddy. Lekcja 4 z 27.
Dwie kolejne funkcje warunkowe — obie niewielkie i przydatne.
NULLIF(a, b) zwraca NULL, gdy a = b, a w przeciwnym razie a. Klasycznym zastosowaniem jest zabezpieczenie przed dzieleniem przez zero:
SELECT total / NULLIF(count, 0) AS average
FROM statsJeśli count wynosi zero, otrzymujemy NULL zamiast błędu.
IIF(cond, a, b) to skrót z dwiema gałęziami dla CASE WHEN cond THEN a ELSE b END. Używaj go, gdy wybór jest binarny; sięgnij po CASE, gdy jest więcej gałęzi.
Wyzwanie
ŁatwyDostępne tabele i kolumny:
matches:id,shots,goals
Dla każdego meczu zwróć:
idconversion:goals * 1.0 / shots, aleNULL, gdyshotswynosi0(użyjNULLIF)verdict:'win', gdygoals > 0, w przeciwnym razie'no goals'(użyjIIF)
Sortuj według id.
Spróbuj swoich sił
SELECT id,
-- konwersja za pomocą NULLIF
-- werdykt za pomocą IIF
FROM matches
ORDER BY id
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Poza podstawami
Poćwicz samodzielnie: Edytor online SQL