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
Je ne comprends pas la dernière condition « Afrique et Moyen-Orient ». Je ne savais pas que le moyen orient était un continent ?
C’est corrigé maintenant