sql >> Databasteknik >  >> RDS >> Oracle

Access/jet motsvarighet till Oracles avkodning

Den närmaste analogin är SWITCH() funktion t.ex.

Oracle:

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

Access Database Engine

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

Observera att med SWITCH() funktion måste du ange hela predikatet varje gång, så du är inte begränsad till att bara använda leverantör_id. För standardvärdet, använd ett predikat som är uppenbart för den mänskliga läsaren att det är SANT t.ex. 1 = 1 eller faktiskt helt enkelt TRUE :)

Något som kanske inte är uppenbart är att logiken i SWITCH() funktion kortsluter inte, vilket innebär att varje uttryck i funktionen måste kunna utvärderas utan fel. Om du behöver logik för att kortsluta måste du använda kapslade IIF() funktioner.



  1. Olika datum Oracle 11g med TOAD

  2. Summan av rader och gruppera genom att använda vältalig

  3. MySQL:Hur många frågor per sida är för många?

  4. Spring app tappar anslutningen till MySql efter 8 timmar. Hur konfigurerar man korrekt?