# SQL IFNULL(): salida de valores alternativos en lugar de valores NULL

La función SQL IFNULL() se utiliza para comprobar el valor de una expresión. Si es NULL, se muestra un valor alternativo en su lugar. Si no es NULL, el sistema muestra su valor original.

## ¿Qué es SQL IFNULL()?

En el [Structured Query Language](https://www.ionos.mx/digitalguide/servidores/know-how/que-es-sql/), la función [SQL COALESCE()](https://www.ionos.mx/digitalguide/servidores/configuracion/sql-coalesce/) es una herramienta importante. Sin embargo, si quieres obtener un valor específico si una expresión está **vacía o en NULL**, puedes utilizar SQL IFNULL() en su lugar. Esta función comprueba la expresión y realiza una de las dos acciones posibles: si el valor comprobado es NULL, se devuelve un valor alternativo, que se puede especificar de antemano. Si el valor almacenado no es NULL, se devuelve la expresión original. Puede parecer confuso, pero te lo explicaremos con algunos ejemplos prácticos.

## Sintaxis y funcionalidad

Veamos primero la sintaxis básica de SQL IFNULL():

```sql
IFNULL(expresión, expresión_alternativa);
```

Se comprobará el valor de la primera expresión. La expresión alternativa se emite si la primera expresión es NULL.

## Ejemplos de aplicación de la función

Si quieres probar cómo funciona SQL IFNULL(), utiliza estos dos sencillos ejemplos. En el primer intento, la función reconocerá que el valor de la expresión no es NULL:

```sql
IFNULL('Esta es la expresión', 'Esta es la alternativa');
```

Cuando ejecutes el código, el resultado tendrá este aspecto:

```sql
Este es el primer valor
```

La primera expresión tiene un valor y, por lo tanto, la función no utiliza una alternativa. Sin embargo, en el siguiente ejemplo:

```sql
IFNULL(' ', 'Esta es la alternativa');
```

Obtenemos el siguiente resultado:

```sql
Esta es la alternativa
```

Dado que el valor de la primera expresión es NULL, la función utiliza la alternativa.

Esto también funciona con valores numéricos:

```sql
IFNULL(10, 15);
```

Obtenemos el siguiente resultado:

```sql
10
```

Sin un valor especificado, la función SQL IFNULL() hace su trabajo:

```sql
IFNULL(NULL, 15);
```

El resultado es:

```sql
15
```

## Un ejemplo práctico

Un posible uso de SQL IFNULL() podría ser el siguiente. Tenemos una tabla llamada “Entregas”; ésta tiene columnas para nombre, dirección de entrega y dirección de facturación:

<table>
  <thead>
    <tr>
      <th>Nombre</th>
      <th>Dirección de entrega</th>
      <th>Dirección de facturación</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Pérez</td>
      <td>Calle Mayor, 17</td>
      <td>Calle Mayor, 17</td>
    </tr>
    <tr>
      <td>Martín</td>
      <td>Avenida de la Constitución, 6</td>
      <td>Paseo de la Castellana, 548</td>
    </tr>
    <tr>
      <td>Hernández</td>
      <td>Camino Real, 32</td>
      <td>NULL</td>
    </tr>
    <tr>
      <td>Rodríguez</td>
      <td>Calle de los Álamos, 77</td>
      <td>Calle de la Luna, 62</td>
    </tr>
    <tr>
      <td>García</td>
      <td>Avenida del Sol, 41</td>
      <td>Avenida del Sol, 41</td>
    </tr>
  </tbody>
</table>

Un cliente solo ha introducido una dirección de entrega y ha omitido la dirección de facturación. Si quieres asegurarte de que todas las entradas estén completas, utiliza SQL IFNULL(). El código con el [comando SQL](https://www.ionos.mx/digitalguide/servidores/configuracion/comandos-sql/) `SELECT` sería el siguiente:

```sql
SELECT Nombre, IFNULL(Dirección de facturación, Dirección de entrega) Dirección 
FROM Entregas;
```

Esto nos da una nueva tabla en la que se almacena al menos una dirección para cada cliente:

<table>
  <thead>
    <tr>
      <th>Nombre</th>
      <th>Dirección</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Pérez</td>
      <td>Calle Mayor, 17</td>
    </tr>
    <tr>
      <td>Martín</td>
      <td>Avenida de la Constitución, 6</td>
    </tr>
    <tr>
      <td>Hernández</td>
      <td>Camino Real, 32</td>
    </tr>
    <tr>
      <td>Rodríguez</td>
      <td>Calle de los Álamos, 77</td>
    </tr>
    <tr>
      <td>García</td>
      <td>Avenida del Sol, 41</td>
    </tr>
  </tbody>
</table>

## Alternativas a SQL IFNULL()

Además de la función `COALESCE()` mencionada anteriormente, existen otras alternativas a SQL IFNULL(). [SQL NVL()](https://www.ionos.mx/digitalguide/servidores/configuracion/sql-nvl/) también convierte un valor NULL a un valor de tu elección. [SQL ISNULL()](https://www.ionos.mx/digitalguide/servidores/configuracion/sql-isnull/) comprueba si un valor es NULL o no y luego lo sustituye por un valor definido si es necesario.

Consejo La base de datos perfecta para tus necesidades: con el [Hosting SQL Server](https://www.ionos.es/cloud/sql-server-hosting "Hosting SQL Server de IONOS") de IONOS, puedes elegir entre MSSQL, MySQL o MariaDB y beneficiarte del máximo rendimiento y de sólidas funciones de seguridad.


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