Oracle
 sql >> Base de données >  >> RDS >> Oracle

Access/jet équivalent du décodage d'Oracle

L'analogie la plus proche est le SWITCH() fonction par ex.

Oracle :

SELECT supplier_name,
       decode(supplier_id,  10000, 'IBM',
                            10001, 'Microsoft',
                            10002, 'Hewlett Packard',
                                   'Gateway') result
  FROM suppliers;

Accéder au moteur de base de données

SELECT supplier_name,
       SWITCH(supplier_id = 10000, 'IBM',
              supplier_id = 10001, 'Microsoft',
              supplier_id = 10002, 'Hewlett Packard',
              TRUE, 'Gateway') AS result
  FROM suppliers; 

Notez qu'avec le SWITCH() fonction, vous devez fournir le prédicat complet à chaque fois, vous n'êtes donc pas limité à l'utilisation de supplier_id. Pour la valeur par défaut, utilisez un prédicat qui est évident pour le lecteur humain qu'il est VRAI, par ex. 1 = 1 ou bien simplement TRUE :)

Quelque chose qui peut ne pas être évident est que la logique dans le SWITCH() La fonction ne court-circuite pas, ce qui signifie que chaque expression de la fonction doit pouvoir être évaluée sans erreur. Si vous avez besoin d'une logique pour court-circuiter, vous devrez utiliser IIF() imbriqué fonctions.