Menu
Coddy logo textTech

COALESCE für NULL-Werte

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

COALESCE gibt das erste Argument zurück, das nicht NULL ist:

COALESCE(nickname, first_name, 'Anonymous')

Liest von links nach rechts und stoppt beim ersten Nicht-Null-Wert. Es ist die sauberste Methode, einen Fallback-Wert in einer Abfrage bereitzustellen, ohne dass CASE benötigt wird.

Häufige Anwendungen:

  • Zeige 0 anstelle von NULL aus einem LEFT JOIN: COALESCE(SUM(amount), 0)
  • Wähle das erste nicht leere optionale Feld: COALESCE(mobile, home, work)
challenge icon

Aufgabe

Einfach

Verfügbare Tabellen und Spalten:

  • <strong>users</strong>: <strong>id</strong>, <strong>display_name</strong>, <strong>email</strong>
  • <strong>orders</strong>: <strong>user_id</strong>, <strong>amount</strong>

Geben Sie eine Zeile pro Benutzer zurück mit:

  • id
  • label: display_name falls gesetzt, ansonsten email, ansonsten 'unknown'
  • total_spent: Summe der amount-Werte der Bestellungen des Benutzers; Benutzer ohne Bestellungen sollten 0 (nicht NULL) anzeigen

Sortieren Sie nach id. Hinweis: Ein LEFT JOIN von users zu orders zusammen mit COALESCE(SUM(...), 0) behandelt die fehlenden Zeilen.

Spickzettel

COALESCE gibt das erste Nicht-NULL-Argument zurück:

COALESCE(nickname, first_name, 'Anonymous')

Häufige Anwendungsfälle:

  • Ersatz-Anzeigewert: COALESCE(mobile, home, work)
  • Ersetzen von NULL aus LEFT JOIN-Aggregaten: COALESCE(SUM(amount), 0)

Probier es selbst

SELECT u.id,
       -- label über COALESCE
       -- total_spent über COALESCE(SUM(...), 0)
FROM users u
LEFT JOIN orders o ON o.user_id = u.id
GROUP BY u.id
ORDER BY u.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