sql >> Databáze >  >> RDS >> Oracle

Access/jet ekvivalent dekódování Oracle

Nejbližší analogií je SWITCH() funkce např.

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; 

Všimněte si, že pomocí SWITCH() musíte pokaždé zadat celý predikát, takže nejste omezeni pouze na použití id_dodavatele. Pro výchozí hodnotu použijte predikát, o kterém je lidskému čtenáři zřejmé, že je PRAVDA, např. 1 = 1 nebo skutečně jednoduše TRUE :)

Něco, co nemusí být zřejmé, je logika v SWITCH() funkce nezkratuje, to znamená, že každý výraz ve funkci musí být schopen bezchybně vyhodnotit. Pokud potřebujete logiku ke zkratu, budete muset použít vnořený IIF() funkce.



  1. Úvod do PL/SQL VARRAY v databázi Oracle

  2. Data Sqlite a automaticky vytvořená tlačítka na ScrollPane

  3. Jak získat aktuální ID transakce databáze pomocí JDBC nebo Hibernate?

  4. Jak mohu převést soubor MDB (Access) na MySQL (nebo prostý soubor SQL)?