Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Access/Jet-Äquivalent von Oracles Dekodierung

Die nächste Analogie ist SWITCH() Funktion z.B.

Orakel:

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

Greifen Sie auf die Datenbank-Engine

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

Beachten Sie das mit dem SWITCH() -Funktion müssen Sie jedes Mal das vollständige Prädikat angeben, sodass Sie nicht darauf beschränkt sind, nur supplier_id zu verwenden. Verwenden Sie für den Standardwert ein Prädikat, das für den menschlichen Leser offensichtlich ist, dass es WAHR ist, z. 1 = 1 oder einfach nur TRUE :)

Etwas, das möglicherweise nicht offensichtlich ist, ist die Logik in SWITCH() Funktion schließt nicht kurz, was bedeutet, dass jeder Ausdruck in der Funktion fehlerfrei ausgewertet werden können muss. Wenn Sie Logik zum Kurzschließen benötigen, müssen Sie verschachteltes IIF() verwenden Funktionen.