Tema SQL
COALESCE, NULLIF e IFNULL/ISNULL
Sustituir NULL, comparar valores y portabilidad entre motores.
Descripción
COALESCE devuelve el primer argumento no NULL. NULLIF(a,b) devuelve NULL si a=b. IFNULL/ISNULL/NVL son equivalentes propietarios (manual §10.5).
Estructura general
Forma habitual de la sentencia: orden de cláusulas, qué parte filtra, agrupa o proyecta columnas, y qué devuelve el motor. Cópiala como plantilla y sustituye nombres por tus tablas reales.
COALESCE(expr1, expr2, ...)
NULLIF(expr_a, expr_b)
Componentes
Cada componente tiene un papel concreto en la ejecución lógica de la sentencia. Léelos en orden: así entiendes qué puedes omitir, qué es obligatorio y qué expresiones son válidas en cada sitio según tu motor.
- COALESCE
- Cadena de valores por defecto; útil en SELECT y expresiones.
- NULLIF
- Evita división por cero o normaliza “sentinelas”.
Ejemplos
Ejemplo 1
SELECT nombre,
COALESCE(correo, telefono, 'Sin contacto') AS contacto
FROM clientes;
Ejemplo 2
SELECT NULLIF(0, 0); -- NULL
Los ejemplos son ilustrativos. En producción usa consultas parametrizadas (prepared statements), revisa índices y aplica el principio de menor privilegio en cuentas de base de datos.