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;
Resultado: Carlos Ruiz muestra 0 (sin pedido); John Smith muestra su ID de pedido.
| Nombre_Cliente | Num_Pedido |
|---|---|
| Carlos Ruiz | 0 |
| John Smith | 5 |
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;
Resultado: Hans Müller y Luca Rossi aparecen con «Sin pedido».
| Nombre_Cliente | Estado_Pedido |
|---|---|
| Hans Müller | Sin pedido |
| Luca Rossi | Sin 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;
Resultado:
Salmón fresco (stock 45) muestra NULL en
Stock_Ajustado
; el resto conserva su stock.
| Nombre_Producto | Stock | Stock_Ajustado |
|---|---|---|
| Arroz integral | 500 | 500 |
| Salmón fresco | 45 | NULL |
| Salsa de tomate | 340 | 340 |
Tablas demo para funciones NULL
| ID_Cliente | Nombre_Cliente | Ciudad | Pais |
|---|---|---|---|
| 1 | Ana García | Madrid | España |
| 2 | Luis Pérez | Barcelona | España |
| 3 | María López | Valencia | España |
| 4 | Carlos Ruiz | Madrid | España |
| 6 | John Smith | London | UK |
| … 5 clientes más en la demo (10 en total) | |||
Tabla Pedidos (demo)
| ID_Pedido | ID_Cliente | ID_Empleado | Fecha |
|---|---|---|---|
| 1 | 1 | 1 | 2024-01-15 |
| 2 | 3 | 2 | 2024-01-18 |
| 3 | 5 | 1 | 2024-02-02 |
| 4 | 2 | 3 | 2024-02-10 |
| 5 | 6 | 4 | 2024-02-14 |
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.