top of page

Comprender y manejar NULL en SQL: Qué es y cómo tratarlo

Kathy Guevara

¡Hola, comunidad! Hoy vamos a abordar un tema esencial en SQL: el concepto de NULL. Si trabajas con bases de datos, seguro te has encontrado con valores NULL más de una vez. Pero, ¿qué significa realmente NULL y cómo deberíamos manejarlo correctamente en nuestras consultas? ¡Vamos a verlo!


¿Qué es NULL en SQL?

NULL en SQL representa la ausencia de un valor. No es lo mismo que un valor vacío ('') o un cero (0). NULL significa que no se conoce o no existe ningún valor en esa celda.

Ejemplo de una tabla con valores NULL:

ID

Nombre

Edad

1

Juan

25

2

Laura

NULL

3

Carlos

30

En este caso, Laura no tiene un valor registrado para la columna Edad, lo que significa que es NULL.


Cómo tratar con NULL en SQL

SQL tiene varias formas de lidiar con NULL en consultas. Aquí te comparto las más comunes:


1. IS NULL y IS NOT NULL – Filtrar registros con NULL

Para identificar si un valor es NULL o no, debes usar IS NULL o IS NOT NULL. No puedes usar el típico = para comparar valores con NULL.

-- Seleccionar los registros donde la edad es NULL 
SELECT * FROM personas WHERE edad IS NULL; 
-- Seleccionar los registros donde la edad NO es NULL SELECT * FROM personas WHERE edad IS NOT NULL;

2. COALESCE() – Reemplazar valores NULL

Con COALESCE() puedes reemplazar los valores NULL por otro valor que especifiques. Es útil cuando no quieres que un valor sea NULL en tu resultado.

-- Reemplazar NULL por un valor predeterminado 
SELECT nombre, COALESCE(edad, 'Desconocida') AS edad 
FROM personas;

En este ejemplo, si edad es NULL, se mostrará como 'Desconocida'.


3. NULLIF() – Devolver NULL si dos valores son iguales

La función NULLIF() compara dos valores y devuelve NULL si son iguales. Si no lo son, devuelve el primer valor.

-- Si la edad es 0, se devuelve NULL 
SELECT nombre, NULLIF(edad, 0) AS edad 
FROM personas;

4. IFNULL() / ISNULL() – Otra forma de manejar NULL

Algunas bases de datos ofrecen IFNULL() o ISNULL() como funciones alternativas a COALESCE() para reemplazar valores NULL.

-- Reemplazar NULL por 0 
SELECT nombre, IFNULL(edad, 0) AS edad 
FROM personas;

Errores comunes al manejar NULL

Uno de los errores más comunes es tratar de comparar NULL con otros valores usando = o !=. ¡Esto no funcionará!

-- Esto NO funcionará 
SELECT  FROM personas WHERE edad = NULL; -- No devolverá resultados 
-- Debes usar IS NULL 
SELECT  FROM personas WHERE edad IS NULL;

Otro error es olvidar que cualquier operación con NULL generalmente devuelve NULL. Por ejemplo:

SELECT 10 + NULL; -- Resultado: NULLl

En este caso, sumar un número a NULL resulta en NULL.


Resumen rápido:

  • NULL representa la ausencia de valor, no un valor vacío ni cero.

  • Usa IS NULL o IS NOT NULL para filtrar valores NULL en consultas.

  • Usa COALESCE() para reemplazar NULL por otro valor.

  • NULLIF() y IFNULL() son otras formas de manejar NULL.

  • Evita comparar NULL con = o !=; utiliza IS NULL en su lugar.

Manejar correctamente NULL es esencial para evitar errores en tus consultas y asegurar que tus reportes y cálculos sean precisos. ¡Prueba estos tips y mejora tu manejo de datos con SQL!


98 views

Comments


bottom of page