# SQL IFNULL() : remplacer NULL par une valeur alternative

La fonction SQL `IFNULL()` est utilisée pour vérifier la valeur d’une expression. Si la valeur est égale à NULL, une valeur alternative est renvoyée à la place. Si ce n’est pas le cas, le système affiche sa valeur initiale.

## Qu’est-ce que SQL `IFNULL()` ?

Dans le [Structured Query Language](https://www.ionos.fr/digitalguide/serveur/configuration/introduction-a-sql-a-laide-dexemples/) (SQL), la fonction [SQL `COALESCE()`](https://www.ionos.fr/digitalguide/serveur/configuration/sql-coalesce/) est un outil important. Toutefois, si vous souhaitez afficher une valeur spécifique lorsqu’une expression donnée est **vide ou NULL**, vous pouvez utiliser SQL `IFNULL()`. Cette fonction vérifie l’expression et effectue ensuite l’une des deux actions possibles : si la valeur vérifiée est NULL, une valeur alternative est renvoyée, que vous pouvez déterminer au préalable. Si la valeur enregistrée n’est pas NULL, l’expression normale est en revanche renvoyée. Cela peut paraître un peu confus de prime abord, mais avec quelques exemples pratiques, vous vous rendrez vite compte de la valeur ajoutée de cette fonction.

## Syntaxe et fonctionnement

Voyons d’abord la syntaxe de base de SQL `IFNULL()`. Elle ressemble à ceci :

```sql
IFNULL(expression, expression_alternative);
```

La première expression est celle dont la valeur doit être vérifiée. Si elle est NULL, l’expression alternative est affichée.

## Exemples d’utilisation de la fonction

Si vous souhaitez tester le fonctionnement de SQL `IFNULL()`, utilisez ces deux exemples simples. Dans le premier essai, la fonction détectera que la valeur de l’expression n’est pas NULL. Voici le code correspondant :

```sql
IFNULL('Ceci est la première expression', 'Ceci est l’alternative');
```

Si vous exécutez le code, la sortie ressemblera à ceci :

```sql
Ceci est la première expression
```

La première expression a une valeur et la fonction renonce donc à une alternative. Il en va autrement dans l’exemple suivant :

```sql
IFNULL(' ', 'Ceci est l’alternative');
```

Nous obtenons alors la sortie suivante :

```sql
Ceci est l’alternative
```

Comme la valeur de la première expression est NULL, la fonction recourt à l’alternative.

Cela fonctionne bien sûr aussi avec des valeurs numériques :

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

Voici la sortie :

```sql
10
```

Sans valeur stockée, SQL `IFNULL()` entre en jeu :

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

La sortie est alors différente :

```sql
15
```

## Exemple concret

Une utilisation possible de SQL `IFNULL()` pourrait être la suivante. Nous avons une table appelée « Livraisons », qui se compose d’une colonne pour le nom, une pour l’adresse de livraison et une autre pour l’adresse de facturation.

<table>
  <thead>
    <tr>
      <th>Nom</th>
      <th>Adresse de livraison</th>
      <th>Adresse de facturation</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Berron</td>
      <td>20, avenue Gambetta</td>
      <td>20, avenue Gambetta</td>
    </tr>
    <tr>
      <td>Froissy</td>
      <td>18, rue Léon Blum</td>
      <td>2, avenue de la Gare</td>
    </tr>
    <tr>
      <td>Sulis</td>
      <td>6, place du Commerce</td>
      <td>NULL</td>
    </tr>
    <tr>
      <td>Verdon</td>
      <td>12, passage Haxo</td>
      <td>65, avenue du Général de Gaulle</td>
    </tr>
    <tr>
      <td>Paré</td>
      <td>5, rue de Choisy</td>
      <td>5, rue de Choisy</td>
    </tr>
  </tbody>
</table>

Un client n’a donc indiqué qu’une adresse de livraison sans adresse de facturation. Si vous voulez vous assurer que toutes les entrées sont complètes, vous pouvez utiliser SQL `IFNULL()`. Le code approprié avec la [commande SQL](https://www.ionos.fr/digitalguide/serveur/configuration/commandes-sql/) `SELECT` se compose ainsi :

```sql
SELECT Nom, IFNULL(Adresse de facturation, Adresse de livraison) Adresse
FROM Livraisons;
```

Nous obtenons ainsi une nouvelle table dans laquelle une adresse est enregistrée au moins pour chaque client :

<table>
  <thead>
    <tr>
      <th>Nom</th>
      <th>Adresse</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Berron</td>
      <td>20, avenue Gambetta</td>
    </tr>
    <tr>
      <td>Froissy</td>
      <td>18, rue Léon Blum</td>
    </tr>
    <tr>
      <td>Sulis</td>
      <td>6, place du Commerce</td>
    </tr>
    <tr>
      <td>Verdon</td>
      <td>12, passage Haxo</td>
    </tr>
    <tr>
      <td>Paré</td>
      <td>5, rue de Choisy</td>
    </tr>
  </tbody>
</table>

## Alternatives à SQL `IFNULL()`

En plus de la fonction `COALESCE()` dont nous avons parlé, il existe d’autres alternatives à SQL `IFNULL()`. [SQL `NVL()`](https://www.ionos.fr/digitalguide/serveur/configuration/sql-nvl/) convertit également une valeur NULL en une valeur de votre choix. [SQL `ISNULL()`](https://www.ionos.fr/digitalguide/serveur/configuration/sql-isnull/) vérifie également si une valeur est NULL ou non, puis la remplace par une valeur définie si nécessaire.

Conseil La base de données parfaite pour vos besoins : avec le [serveur d’hébergement SQL](https://www.ionos.fr/cloud/hebergement-serveur-sql "Hébergement SQL pour les bases de données MSSQL, MySQL et MariaDB | IONOS") de IONOS, vous avez le choix entre MSSQL, MySQL ou MariaDB et profitez de performances de pointe et de puissantes fonctionnalités de sécurité.


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