# La fonction SQL NVL : comment remplacer les valeurs NULL ?

SQL `NVL` signifie « *Null Value* » (valeur Null) et sert à remplacer les valeurs NULL dans les enregistrements et les bases de données **par des valeurs plus significatives**. Cela permet de rationaliser les bases de données, d’améliorer la lisibilité des analyses et des rapports, ainsi que d’optimiser les performances des requêtes de recherche.

## Définition de la fonction SQL `NVL`

Les administrateurs qui travaillent régulièrement avec des bases de données et qui ont besoin de jeux de données complets pour les analyses connaissent le problème des valeurs NULL. Les données manquantes et les lacunes peuvent entraîner des résultats faussés, des rapports inexploitables ainsi que des imprécisions. La solution à ces problèmes est SQL `NVL`. Cette fonction pratique, « *Null-Value Logic* », vous aide à remplacer les colonnes et les champs vides **par des valeurs ou des chaînes de caractères définies par l’utilisateur et plus significatives**. De cette manière, vos enregistrements sont plus exploitables et de meilleure qualité, améliorant ainsi la performance de vos bases de données.

## Fonctionnement de SQL `NVL`

Le fonctionnement de `NVL` est simple : vous définissez avec SQL `NVL` la valeur avec laquelle vous souhaitez remplacer les valeurs NULL dans vos résultats cibles. La fonction vérifie si les enregistrements sélectionnés contiennent des valeurs vraies ou fausses et **remplace automatiquement les valeurs NULL trouvées** par les informations souhaitées. Les valeurs NULL sont généralement des données absentes des lignes et des colonnes. Elles ne doivent donc pas être confondues avec une valeur « 0 » en tant que valeur numérique ou avec des espaces.

**Attention** : la fonction SQL `NVL` est utilisée **principalement dans les bases de données ORACLE**. Dans MySQL ou dans SQL Server, la fonction `NVL` a été remplacée par la fonction `ISNULL`. Si vous souhaitez remplacer des valeurs NULL dans des [bases de données](https://www.ionos.fr/digitalguide/hebergement/aspects-techniques/base-de-donnees/), utilisez plutôt la fonction `ISNULL` dans SQL Server et MS ACCESS. Dans MySQL, vous utilisez à nouveau la fonction `IFNULL` ou `COALESCE`. Le fonctionnement reste toutefois identique.

Conseil Apprenez les principales bases et possibilités d’application du langage de programmation et de base de données très répandu [SQL](https://www.ionos.fr/digitalguide/serveur/know-how/definition-de-sql/). Notre [introduction à SQL avec des exemples](https://www.ionos.fr/digitalguide/serveur/configuration/introduction-a-sql-a-laide-dexemples/) vous aidera à vous familiariser avec le langage informatique.

## Différence entre `NVL`, `ISNULL` et `IFNULL`

Selon le type de base de données, la confusion entre `NVL`, `ISNULL` et `IFNULL` peut vite arriver. Ces trois fonctions sont très similaires, mais **ne sont pas disponibles dans toutes les bases de données et [systèmes de gestion de bases de données](https://www.ionos.fr/digitalguide/hebergement/aspects-techniques/systeme-de-gestion-de-base-de-donnees-sgbd/)**. Notre aperçu vous aidera à choisir la bonne fonction si vous souhaitez remplacer des valeurs NULL.

### Syntaxe et paramètres expliqués

Les fonctions SQL `NVL`, `ISNULL` et `IFNULL` **requièrent chacune deux paramètres**, que nous appelons ici « valeur1 » et « valeur2 » :

- **Valeur1** : définit l’enregistrement ou la colonne dans laquelle vous voulez trouver et remplacer les valeurs NULL.
- **Valeur2** : représente la valeur par laquelle vous souhaitez remplacer les valeurs NULL dans vos résultats cibles. Vous pouvez saisir ici des indications plus utiles telles que « Non renseigné », « 0 » ou « Inconnu » afin d’éliminer les inconnues et les espaces vides.

Vous trouverez ci-dessous la syntaxe pour chacune des trois fonctions.

**NVL** :

```sql
NVL(valeur1, valeur2)
```

**ISNULL** :

```sql
ISNULL(valeur1, valeur2)
```

**IFNULL** :

```sql
IFNULL(valeur1, valeur2)
```

Ces fonctions sont généralement utilisées en combinaison avec [SQL `SELECT`](https://www.ionos.fr/digitalguide/serveur/configuration/sql-select/) et `FROM`, qui permettent de définir les enregistrements à vérifier.

### Différences entre SQL `NVL`, `ISNULL` et `IFNULL`

Voici comment se distinguent ces fonctions, bien que très similaires, pour le traitement des valeurs NULL :

<table>
  <thead>
    <tr>
      <th>Fonction SQL</th>
      <th>Traitement des valeurs NULL</th>
      <th>Compatibilité</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>SQL `NVL`</td>
      <td>Remplace les valeurs NULL trouvées par une valeur souhaitée</td>
      <td>Oracle, Db2</td>
    </tr>
    <tr>
      <td>SQL `ISNULL`</td>
      <td>Remplace des valeurs NULL ou des chaînes vides par une valeur souhaitée</td>
      <td>SQL Server, MySQL, MS ACCESS</td>
    </tr>
    <tr>
      <td>SQL `IFNULL`</td>
      <td>Remplace les valeurs NULL par la valeur souhaitée et n’interprète pas les espaces comme des valeurs NULL</td>
      <td>MySQL, Google BigQuery</td>
    </tr>
  </tbody>
</table>

## Applications de SQL `NVL`

Le remplacement de valeurs NULL se prête aux cas d’application les plus divers. En voici quelques-uns :

- Remplacer des données clients ou des adresses de livraison manquantes par des valeurs lisibles telles que « Non renseigné ».
- Remplacer des soldes de compte ou des transactions inconnues par la valeur numérique 0.
- Remplacer les valeurs vides relatives aux données des patients, aux données financières ou aux données de production par des valeurs standard ou moyennes.
- Remplacer les évaluations manquantes ou les feedbacks inexistants par « Pas de données ».
- Remplacer les images ou informations manquantes par « Image non disponible » ou « Informations non disponibles ».

Conseil Vous souhaitez une gestion efficace des données avec des performances fiables, une capacité évolutive et une sécurité contre les pannes ? Alors, utilisez l’[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 avec des offres de serveur et d’hébergement individuelles et comptez sur la protection des données aux normes européennes.

## Exemples pratiques SQL `NVL`

Pour illustrer l’utilisation de `NVL`, `ISNULL` et `IFNULL`, vous trouverez ci-dessous un exemple pratique à l’aide d’une table de clients avec des colonnes d’adresse, d’âge et d’ID client. Nous souhaitons ici remplacer les éventuelles valeurs NULL sous « Adresse » par la valeur « Aucune donnée ».

### Exemple pour SQL `NVL`

```sql
SELECT Adresse, Âge, ID client, NVL(Adresse, 'Aucune donnée')
FROM clients;
```

### Exemple de SQL `ISNULL`

```sql
SELECT Adresse, Âge, ID client, ISNULL(Adresse, 'Aucune donnée')
FROM clients;
```

### Exemple de SQL `IFNULL`

```sql
SELECT Adresse, Âge, ID client, IFNULL(Adresse, 'Aucune donnée')
FROM clients;
```

## Alternatives à SQL `NVL`

Les fonctions `NVL`, `ISNULL` et `IFNULL` sont presque identiques. Il faut cependant veiller à ce que la fonction en question soit disponible dans votre base de données. Une autre alternative presque identique parmi les [commandes SQL](https://www.ionos.fr/digitalguide/serveur/configuration/commandes-sql/) ,[opérateurs SQL](https://www.ionos.fr/digitalguide/serveur/configuration/les-operateurs-sql/) et les fonctions est [SQL `COALESCE`](https://www.ionos.fr/digitalguide/serveur/configuration/sql-coalesce/). `COALESCE` est disponible **dans presque toutes les applications de base de données** et permet d’échanger des valeurs NULL trouvées avec une valeur de remplacement.

La syntaxe est également identique :

```sql
COALESCE(Valeur1, Valeur2)
```


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