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.
- 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);
sqlPrimero, 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');
sqlEl resultado sería el siguiente:
Este es el valor de sustitución
sqlEn 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');
sqlSe devuelve lo siguiente:
Esta es la expresión real
sqlEjemplo 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;
sqlAl 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;
sqlSe devuelve:
500
sqlEl 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.
¡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.