NULLIF und IIF
Teil des Abschnitts Über die Grundlagen hinaus der SQL-Journey von Coddy. Lektion 4 von 27.
Zwei weitere bedingte Hilfsfunktionen, beide klein und nützlich.
NULLIF(a, b) gibt NULL zurück, wenn a = b, andernfalls a. Die klassische Verwendung besteht darin, eine Division durch null zu vermeiden:
SELECT total / NULLIF(count, 0) AS average
FROM statsWenn count null ist, erhalten wir NULL statt eines Fehlers.
IIF(cond, a, b) ist eine Kurzschreibweise mit zwei Zweigen für CASE WHEN cond THEN a ELSE b END. Verwende sie, wenn die Auswahl binär ist; verwende CASE, wenn es mehr Zweige gibt.
Aufgabe
EinfachVerfügbare Tabellen und Spalten:
matches:id,shots,goals
Gib für jedes Spiel Folgendes zurück:
idconversion:goals * 1.0 / shots, aberNULL, wennshotsgleich0ist (NULLIFverwenden)verdict:'win', wenngoals > 0ist, andernfalls'no goals'(IIFverwenden)
Nach id sortieren.
Probier es selbst
SELECT id,
-- Konvertierung mit NULLIF
-- Urteil mit IIF
FROM matches
ORDER BY id
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Über die Grundlagen hinaus
1Bedingte Logik
CASE WHENCASE in ORDER BYCOALESCE für NULL-WerteNULLIF und IIFRückblick – AnwesenheitÜbe selbstständig: SQL-Playground