Funciones NULL en SQL

Tras ver IS NULL , las funciones COALESCE , IFNULL / ISNULL y NULLIF te permiten sustituir o generar NULL en los resultados sin cambiar los datos de la tabla.

Esta página de Funciones NULL en SQL te orienta dentro del tutorial. No sustituye a las lecciones detalladas, pero te ayuda a localizar rápidamente el tema que buscas.

Haz clic en el enlace que necesites y practica en el editor SQL con las tablas Clientes, Productos y Pedidos.

Son habituales tras un LEFT JOIN cuando faltan coincidencias, o para mostrar un valor por defecto en informes.


Sintaxis COALESCE en SQL

La sintaxis indica el orden de argumentos y palabras clave. Copia la plantilla y sustituye nombres de columnas o literales entre comillas simples.

Plantilla

    SELECT COALESCE(expresion1, expresion2, expresion3, ...) AS alias
FROM tabla;
  

COALESCE devuelve el primer argumento no NULL . Si todos son NULL, el resultado es NULL.


COALESCE tras LEFT JOIN en SQL

Tras un LEFT JOIN entre Clientes y Pedidos , sustituye NULL por 0 en ID_Pedido :

COALESCE tras LEFT JOIN

    SELECT Clientes.Nombre_Cliente,
       COALESCE(Pedidos.ID_Pedido, 0) AS Num_Pedido
FROM Clientes
LEFT JOIN Pedidos ON Clientes.ID_Cliente = Pedidos.ID_Cliente
WHERE Clientes.ID_Cliente IN (4, 6)
ORDER BY Clientes.Nombre_Cliente;
  
Abrir en editor

Resultado: Carlos Ruiz muestra 0 (sin pedido); John Smith muestra su ID de pedido.

Nombre_ClienteNum_Pedido
Carlos Ruiz0
John Smith5

Sintaxis IFNULL / ISNULL en SQL

La sintaxis indica el orden de argumentos y palabras clave. Copia la plantilla y sustituye nombres de columnas o literales entre comillas simples.

Plantilla

    SELECT ISNULL(columna, 'valor_si_null') AS alias
FROM tabla;
  

En SQL Server se usa ISNULL ; en SQLite y MySQL, IFNULL . Nuestro editor traduce ISNULL automáticamente.


IFNULL con texto por defecto

IFNULL con fecha de pedido

    SELECT Clientes.Nombre_Cliente,
       ISNULL(CAST(Pedidos.Fecha AS VARCHAR(100)), 'Sin pedido') AS Estado_Pedido
FROM Clientes
LEFT JOIN Pedidos ON Clientes.ID_Cliente = Pedidos.ID_Cliente
WHERE Clientes.ID_Cliente IN (8, 9)
ORDER BY Clientes.Nombre_Cliente;
  
Abrir en editor

Resultado: Hans Müller y Luca Rossi aparecen con «Sin pedido».

Nombre_ClienteEstado_Pedido
Hans MüllerSin pedido
Luca RossiSin pedido

Sintaxis NULLIF en SQL

La sintaxis indica el orden de argumentos y palabras clave. Copia la plantilla y sustituye nombres de columnas o literales entre comillas simples.

Plantilla

    SELECT NULLIF(columna1, columna2) AS alias
FROM tabla;
  

NULLIF(a, b) devuelve NULL si a = b ; si no, devuelve a . Útil para convertir un valor concreto en NULL.


NULLIF en columna numérica

NULLIF(Stock, 45)

    SELECT Nombre_Producto, Stock,
       NULLIF(Stock, 45) AS Stock_Ajustado
FROM Productos
WHERE ID_Producto IN (3, 6, 9)
ORDER BY Nombre_Producto;
  
Abrir en editor

Resultado: Salmón fresco (stock 45) muestra NULL en Stock_Ajustado ; el resto conserva su stock.

Nombre_ProductoStockStock_Ajustado
Arroz integral500500
Salmón fresco45NULL
Salsa de tomate340340

Tablas demo para funciones NULL

ID_Cliente Nombre_Cliente Ciudad Pais
1Ana GarcíaMadridEspaña
2Luis PérezBarcelonaEspaña
3María LópezValenciaEspaña
4Carlos RuizMadridEspaña
6John SmithLondonUK
… 5 clientes más en la demo (10 en total)
Tabla Clientes (extracto). Diez clientes; cinco tienen pedidos.

Tabla Pedidos (demo)

ID_Pedido ID_Cliente ID_Empleado Fecha
1112024-01-15
2322024-01-18
3512024-02-02
4232024-02-10
5642024-02-14
Tabla Pedidos en el editor SQL. Cinco pedidos enlazan clientes y empleados.

Resumen funciones NULL

  • COALESCE — primer valor no NULL de una lista.
  • IFNULL / ISNULL — sustituye NULL por un valor por defecto.
  • NULLIF — devuelve NULL cuando dos expresiones son iguales.
  • Siguiente paso: CREATE VIEW para guardar consultas reutilizables.

Cómo practicar en el editor

1. Pulsa Pruébalo tú mismo en un ejemplo.
2. Cambia un filtro, columna o literal.
3. Ejecuta y compara el resultado con la tabla de ejemplo.

Comprueba lo aprendido

Responde 2–3 preguntas sobre esta lección. Verás ✓ en verde si aciertas o ✗ en rojo si fallas.