sql >> Database teknologi >  >> RDS >> Oracle

Adgang/jet-ækvivalent til Oracles afkodning

Den nærmeste analogi er SWITCH() funktion f.eks.

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; 

Bemærk, at med SWITCH() funktion skal du angive det fulde prædikat hver gang, så du er ikke begrænset til kun at bruge leverandør_id. For standardværdien skal du bruge et prædikat, der er indlysende for den menneskelige læser, at det er SAND, f.eks. 1 = 1 eller faktisk bare TRUE :)

Noget, der måske ikke er indlysende, er, at logikken i SWITCH() funktion kortslutter ikke, hvilket betyder at hvert udtryk i funktionen skal kunne evalueres uden fejl. Hvis du kræver logik for at kortslutte, skal du bruge indlejret IIF() funktioner.



  1. Hvordan udskriver man GETDATE() i SQL Server med millisekunder i tid?

  2. MySQL-trigger til kontrol af værdier før indsættelse flere gange

  3. Infinite Scroll med MySQL Data

  4. For at ignorere resultatet i FØR TRIGGER af PostgreSQL?