NULLIF
Vergleicht zwei Werte und gibt NULL zurück, wenn sie gleich sind.
PostgreSQL 17.5
NULLIF(value_1, value_2)Parameter
- value_1
- Wert, der zurückgegeben wird, wenn die Argumente ungleich sind
- value_2
- Wert, mit dem value_1 verglichen wird
Rückgabewert
NULL, wenn die Argumente gleich sind, sonst value_1
Beispiele
Gleiche Werte ergeben NULL
PostgreSQL 17.5
SELECT NULLIF('SQL Academy', 'SQL Academy');Schutz vor Division durch null
PostgreSQL 17.5
SELECT 100 / NULLIF(0, 0) AS result;Leere Promocodes werden nicht gezählt
PostgreSQL 17.5
SELECT COUNT(promo_code) AS not_null,
COUNT(NULLIF(promo_code, '')) AS filled
FROM orders;Seiten pro Minute ohne Division durch null
PostgreSQL 17.5
SELECT session_id,
pages_viewed,
duration_sec,
ROUND(pages_viewed * 60.0 / NULLIF(duration_sec, 0), 1) AS pages_per_minute
FROM sessions
ORDER BY duration_sec
LIMIT 5;Details
Zwei häufige Anwendungen: Schutz vor Division durch null — x / NULLIF(y, 0) gibt NULL statt eines Fehlers zurück — und leere Strings in NULL verwandeln — NULLIF(column, ''), damit COUNT sie überspringt und COALESCE sie ersetzt.