SQL Academy
Premium
Funktionsreferenz

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');
nullif
<NULL>

Schutz vor Division durch null

PostgreSQL 17.5
SELECT 100 / NULLIF(0, 0) AS result;
result
<NULL>

Leere Promocodes werden nicht gezählt

PostgreSQL 17.5
SELECT COUNT(promo_code) AS not_null,
	COUNT(NULLIF(promo_code, '')) AS filled
FROM orders;
not_nullfilled
297219

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;
session_idpages_viewedduration_secpages_per_minute
s_00020690<NULL>
s_000015100<NULL>
s_00016340<NULL>
s_000134110<NULL>
s_000270240<NULL>

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.

Siehe auch

Wo du es lernst