Referencia de funciones

NULLIF

Compara dos valores y devuelve NULL si son iguales.

PostgreSQL 17.9
NULLIF(value_1, value_2)
value_1
Valor que se devuelve si los argumentos son distintos
value_2
Valor con el que se compara value_1

Valor devuelto

NULL si los argumentos son iguales; si no, value_1

Ejemplos

Valores iguales dan NULL

PostgreSQL 17.9
SELECT NULLIF('SQL Academy', 'SQL Academy');
nullif
<NULL>

Evitar la división entre cero

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

Los códigos promocionales vacíos no se cuentan

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

Páginas por minuto sin dividir entre cero

PostgreSQL 17.9
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>

Detalles

Dos usos habituales: evitar la división entre cero — x / NULLIF(y, 0) devuelve NULL en lugar de un error — y convertir las cadenas vacías en NULL — NULLIF(column, ''), para que COUNT las omita y COALESCE las sustituya.

Véase también

Dónde aprenderlo