# Oracle Database/Utilisation de fonctions/fonction DECODE

* Introduction
* Interfaces de gestion
* Gestion des utilisateurs
* Objets stockés
** Tablespaces
** Tables
** Vues
** Vues matérialisées
** Index
** Procédures stockées
** Fonctions
** Packages
** Trigger
** Séquences
* PL/SQL
** Considérations générales
*** Oracle ignore le type booléen
*** Oracle ignore l'autoincrement
** Quelques requêtes utiles
*** Dictionnaire de données
*** Paramètres système
*** Utiliser les dates
*** Modifier une ligne
*** Analyse d'une table
** Utilisation de fonctions
*** Fonction UNPIVOT
*** Fonction PIVOT
*** Fonction LISTAGG
*** Fonction TRIM
*** Fonction LENGTH
*** Fonction SUBSTR
*** Fonction DECODE
* Sécurité
* Net Services
* Serveurs partagés
* Monitoring des performances
* Maintenance proactive
* Gestion des annulations
* Conflits de verrouillage
* Sauvegardes et restaurations
* Bases de données multimédia
* Bases de données spatiotemporelles
* Deferrable constraint
* Débogage
* Désinstaller
* Introduction
* Interfaces de gestion
* Gestion des utilisateurs
* Objets stockés
** Tablespaces
** Tables
** Vues
** Vues matérialisées
** Index
** Procédures stockées
** Fonctions
** Packages
** Trigger
** Séquences
* PL/SQL
** Considérations générales
*** Oracle ignore le type booléen
*** Oracle ignore l'autoincrement
** Quelques requêtes utiles
*** Dictionnaire de données
*** Paramètres système
*** Utiliser les dates
*** Modifier une ligne
*** Analyse d'une table
** Utilisation de fonctions
*** Fonction UNPIVOT
*** Fonction PIVOT
*** Fonction LISTAGG
*** Fonction TRIM
*** Fonction LENGTH
*** Fonction SUBSTR
*** Fonction DECODE
* Sécurité
* Net Services
* Serveurs partagés
* Monitoring des performances
* Maintenance proactive
* Gestion des annulations
* Conflits de verrouillage
* Sauvegardes et restaurations
* Bases de données multimédia
* Bases de données spatiotemporelles
* Deferrable constraint
* Débogage
* Désinstaller
[ Modifier le sommaire ]
La fonction DECODE correspond à une fonction (IF, EQUALS, THEN, ELSE), voire (IF,THEN,ELSIF,ELSIF,...,ELSIF,ELSE) dans son utilisation avec plus de quatre arguments.
Plusieurs utilisations sont possibles, selon le nombre de cas de figure prévues :
| Nombre de tests | Nombre d'arguments | Syntaxe |
| 1 | 4 | DECODE (Expression, Egalité, BlocTrue, BlocFalse) |
| 2 | 6 | DECODE (Expression, Egalité1, BlocTrue1, Egalité2, BlocTrue2, BlocFalse) |
| 3 | 8 | DECODE (Expression, Egalité1, BlocTrue1, Egalité2, BlocTrue2, Egalité3, BlocTrue3, BlocFalse) |
| etc... N | 4+2*(N-1) | DECODE (Expression, Egalité1, BlocTrue1, ...................................., EgalitéN, BlocTrueN, BlocFalse) |

## Exemple d'utilisation

La requête suivante illustre l'utilisation de cette fonction.

### Résultat en décommentant "SELECT * FROM Mesure"

| MESUREID | CAPTEUR1 | CAPTEUR2 | CAPTEUR3 | CAPTEUR4 | CAPTEUR5 |
| 1 | 4 | 3 | 5 | 4 | 4 |
| 2 | 4 | 1 | 5 | 51 | 5 |
| 3 | 4 | 3 | 5 | 9 | 4 |
| 4 | 3 | 91 | 5 | 5 | 4 |
| 5 | 4 | 1 | 5 | 5 | 5 |

### Résultat sans rien décommenter

| MESUREID | Capteur du Jardin | Capteur du parking | Capteur de la Cuisine | Capteur du toit | Capteur du Grenier |
| 1 | Quatre | RAS | Cinq | Plage faible | Quatre |
| 2 | Quatre | RAS | Cinq | Plage forte | Cinq |
| 3 | Quatre | RAS | Cinq | Plage moyenne | Quatre |
| 4 | Trois | NOTABLE | Cinq | Plage moyenne | Quatre |
| 5 | Quatre | RAS | Cinq | Plage moyenne | Cinq |