Oracle Database/Utilisation de fonctions/fonction DECODE
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[modifier | modifier le wikicode]
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 |