# 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](https://www.ionos.mx/digitalguide/servidores/know-how/que-es-sql/) 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.

## Sintaxis de la función SQL ISNULL()

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

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

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](https://www.ionos.mx/digitalguide/servidores/configuracion/comandos-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:

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

El resultado sería el siguiente:

```sql
Este es el valor de sustitución
```

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

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

Se devuelve lo siguiente:

```sql
Esta es la expresión real
```

## 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:

<table>
  <thead>
    <tr>
      <th>Número de cliente</th>
      <th>Nombre</th>
      <th>Número de pedido</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1326</td>
      <td>Pérez</td>
      <td>00451</td>
    </tr>
    <tr>
      <td>1288</td>
      <td>García</td>
      <td></td>
    </tr>
    <tr>
      <td>1262</td>
      <td>González</td>
      <td>00318</td>
    </tr>
  </tbody>
</table>

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:

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

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

<table>
  <thead>
    <tr>
      <th>Número de cliente</th>
      <th>Nombre</th>
      <th>Número de pedido</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1326</td>
      <td>Pérez</td>
      <td>00451</td>
    </tr>
    <tr>
      <td>1288</td>
      <td>García</td>
      <td>00000</td>
    </tr>
    <tr>
      <td>1262</td>
      <td>González</td>
      <td>00318</td>
    </tr>
  </tbody>
</table>

## Combinación con funciones de agregado

SQL ISNULL() puede asimismo **combinarse con funciones de agregado** como [SQL AVG()](https://www.ionos.mx/digitalguide/servidores/configuracion/sql-avg/), [SQL COUNT()](https://www.ionos.mx/digitalguide/servidores/configuracion/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:

<table>
  <thead>
    <tr>
      <th>Número de cliente</th>
      <th>Nombre</th>
      <th>Número de pedido</th>
      <th>Valor del pedido</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1326</td>
      <td>Schmidt</td>
      <td>00451</td>
      <td>300</td>
    </tr>
    <tr>
      <td>1288</td>
      <td>Schulz</td>
      <td>00000</td>
      <td>NULL</td>
    </tr>
    <tr>
      <td>1262</td>
      <td>Schmidt</td>
      <td>00318</td>
      <td>100</td>
    </tr>
  </tbody>
</table>

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:

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

Se devuelve:

```sql
500
```

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()](https://www.ionos.mx/digitalguide/servidores/configuracion/sql-coalesce/), [SQL IFNULL()](https://www.ionos.mx/digitalguide/servidores/configuracion/sql-ifnull/) y [SQL NVL()](https://www.ionos.mx/digitalguide/servidores/configuracion/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](https://www.ionos.es/cloud/sql-server-hosting "Hosting SQL Server de IONOS") 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.


This is a markdown version of: [https://www.ionos.mx/digitalguide/servidores/configuracion/sql-isnull/](https://www.ionos.mx/digitalguide/servidores/configuracion/sql-isnull/) for AI/LLM consumption.