Fonction SQL ORACLE – DECODE()

La fonction DECODE est l’une des fonctions ORACLE les plus utilisés.
La fonction DECODE est équivalente à la commande CASE (JAVA, Shell UNIX etc…). Cette fonction permet de faire des tester comme suit:

si X = C1, alors
retourner R1
sinon si X = C2, alors
retourner R2
sinon si X = C3, alors
retourner R3

sinon
retourner D

La syntaxe de DECODE est:

DECODE(X, C1, R1, C2, R2, C3, R3, ..., D)

L’argument D (valeur du dernier sinon), n’est pas obligatoire. Au cas où cet argument n’est pas mentionné, la valeur du dernier sinon est NULL.
Passons aux exemples. Dans la table COUNTRIES (schéma HR), nous voulons afficher le nom du pays et le nom de son continent selon le code REGION_ID:

SELECT
COUNTRY_NAME PAYS,
DECODE(REGION_ID,
1, 'Europe',
2, 'Amérique',
3, 'Asie',
4, 'Afrique et Moyen-Orient') CONTINENT
FROM COUNTRIES;

PAYS                            CONTINENT 
------------------------------- ---------------------- 
Argentina                       Amérique
Australia                       Asie
Belgium                         Europe
Brazil                          Amérique
Canada                          Amérique
Switzerland                     Europe
China                           Asie
Germany                         Europe
Denmark                         Europe
Egypt                           Afrique
France                          Europe
India                           Asie
Italy                           Europe
Japan                           Asie
Kuwait                          Asie
Malaysia                        Asie
Mexico                          Amérique
Nigeria                         Afrique
Netherlands                     Europe
Singapore                       Asie
United Kingdom                  Europe
United States of America        Amérique
Zambia                          Afrique
Zimbabwe                        Afrique




2 commentaires

Laisser un commentaire