SQL ISNULL(): comprobar y sustituir valores NULL

SQL ISNULL() se usa para comprobar si una expresión tiene el valor NULL. Si es así, la función NULL lo sustituye por otro valor del mismo tipo de datos.

¿Qué es SQL ISNULL()?

El Structured Query Language permite crear tablas y llenarlas de valores. Si no asignas un valor a la casilla de una tabla, permanecerá vacía, y recibirá un valor NULL, que indica que no tiene un valor real. Imagina que en vez de cero, quieres que tenga otro valor. Para ello este lenguaje cuenta con la función SQL ISNULL(), que antes que nada comprueba si hay alguna expresión con valor NULL. Si es así, aplica un valor de sustitución previamente asignado; si no, se tiene en cuenta el valor original.

Servidores virtuales VPS
Virtualización completa con acceso root
  • Ancho de banda de hasta 1 Gb/s y tráfico ilimitado
  • Almacenamiento SSD NVMe ultrarrápido
  • Incluye: edición Plesk Web Host

Sintaxis de la función SQL ISNULL()

El funcionamiento de SQL ISNULL() se entiende bastante bien echando un vistazo a la sintaxis:

ISNULL(expresión, valor de sustitución);
sql

Primero, la función comprueba si el valor de una expresión dada es NULL. En ese caso, se asigna un valor de sustitución. Si no es así, SQL ISNULL() recurre al valor original de la expresión. Es importante tener en cuenta que la “expresión” y el “valor de sustitución” deben pertenecer al mismo tipo de datos.

Funcionamiento de SQL ISNULL()

SQL ISNULL() se utiliza dentro de un comando SQL como SELECT. A continuación, te mostramos primero un ejemplo en el que el valor de la expresión es NULL, y luego el caso contrario. Este es el primer código:

SELECT ISNULL(' ', 'Este es el valor de sustitución');
sql

El resultado sería el siguiente:

Este es el valor de sustitución
sql

En el siguiente ejemplo se aplica de nuevo la función, pero se establece y por tanto devuelve un valor para la expresión:

SELECT ISNULL('Esta es la expresión real', 'Este es el valor de sustitución');
sql

Se devuelve lo siguiente:

Esta es la expresión real
sql

Ejemplo práctico

Para el siguiente ejemplo creamos una tabla sencilla llamada “Pedidos”. Está formada por columnas con el número de cliente, el nombre del cliente y el número del pedido:

Número de cliente Nombre Número de pedido
1326 Pérez 00451
1288 García
1262 González 00318

Para mejorar la estructura de la tabla, podemos sustituir el valor NULL por el marcador de posición 00000 con la función SQL ISNULL(). El código para hacerlo es el siguiente:

SELECT Número de cliente,
ISNULL(Número de pedido, 00000), Número de pedido
FROM Pedidos;
sql

Al ejecutar el código, se recibe la siguiente tabla:

Número de cliente Nombre Número de pedido
1326 Pérez 00451
1288 García 00000
1262 González 00318

Combinación con funciones de agregado

SQL ISNULL() puede asimismo combinarse con funciones de agregado como SQL AVG(), SQL COUNT() o SUM(). Aprenderás cómo se aplican conjuntamente con el ejemplo de abajo, donde ampliamos la tabla de arriba y añadimos una columna con el valor del pedido en euros. La tabla nueva es la siguiente:

Número de cliente Nombre Número de pedido Valor del pedido
1326 Schmidt 00451 300
1288 Schulz 00000 NULL
1262 Schmidt 00318 100

Si ahora queremos sustituir el valor NULL por 100 y determinar el valor total de todos los pedidos, usamos la función SUM(). El código es el siguiente:

SELECT SUM(ISNULL(Valor de pedido, 100)
FROM Pedidos;
sql

Se devuelve:

500
sql

El sistema sustituye el valor NULL por 100 y suma 300 + 100 + 100.

Alternativas a SQL ISNULL()

Hay opciones parecidas a SQL ISNULL() que forman parte del grupo de funciones NULL, por ejemplo SQL COALESCE(), SQL IFNULL() y SQL NVL(). Estas comprueban si un valor es NULL y permiten sustituirlo por otro valor.

Consejo

¡Encuentra el servidor adecuado para tus necesidades! El hosting SQL server de IONOS te permite elegir entre MSSQL, MySQL y MariaDB y además disfrutar de asesoramiento personalizado, potentes funciones de seguridad y un rendimiento de primer nivel.

¿Le ha resultado útil este artículo?
Page top