Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Equivalente de acesso/jet da decodificação da Oracle


A analogia mais próxima é o SWITCH() função, por exemplo

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

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

Observe que com o SWITCH() função você tem que fornecer o predicado completo a cada vez, então você não está restrito a usar apenas vendor_id. Para o valor padrão, use um predicado que seja óbvio para o leitor humano que é TRUE, por exemplo. 1 = 1 ou simplesmente TRUE :)

Algo que pode não ser óbvio é que a lógica no SWITCH() A função não entra em curto-circuito, o que significa que cada expressão na função deve poder ser avaliada sem erros. Se você precisar de lógica para curto-circuito, precisará usar IIF() aninhado funções.