Menu
Coddy logo textTech

NULLIF und IIF

Teil des Abschnitts Über die Grundlagen hinaus der SQL-Journey von Coddy — Lektion 4 von 27.

Zwei weitere bedingte Helfer, beide klein und nützlich.

NULLIF(a, b) gibt NULL zurück, wenn a = b, andernfalls a. Die klassische Anwendung ist der Schutz vor einer Division durch Null:

SELECT total / NULLIF(count, 0) AS average
FROM stats

Wenn count null ist, erhalten wir NULL anstelle eines Fehlers.

IIF(cond, a, b) ist eine Kurzschreibweise mit zwei Zweigen für CASE WHEN cond THEN a ELSE b END. Verwenden Sie sie, wenn die Auswahl binär ist; greifen Sie zu CASE, wenn es mehr Zweige gibt.

challenge icon

Aufgabe

Einfach

Verfügbare Tabellen und Spalten:

  • <strong>matches</strong>: <strong>id</strong>, <strong>shots</strong>, <strong>goals</strong>

Gib für jedes Spiel Folgendes zurück:

  • id
  • conversion: goals * 1.0 / shots, aber NULL, wenn shots gleich 0 ist (verwende NULLIF)
  • verdict: 'win', wenn goals > 0, ansonsten 'no goals' (verwende IIF)

Sortiere nach id.

Spickzettel

NULLIF(a, b) gibt NULL zurück, wenn a = b ist, andernfalls wird a zurückgegeben. Nützlich, um Divisionen durch Null zu vermeiden:

SELECT total / NULLIF(count, 0) AS average
FROM stats

IIF(cond, a, b) ist eine Abkürzung für ein zwei-verzweigtes CASE:

SELECT IIF(goals > 0, 'win', 'no goals') AS verdict
FROM matches

Probier es selbst

SELECT id,
       -- Konvertierung mit NULLIF
       -- Bewertung mit IIF
FROM matches
ORDER BY id
quiz iconTeste dich selbst

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