Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Dostęp/jet odpowiednik dekodowania Oracle

Najbliższą analogią jest SWITCH() funkcja np.

Wyrocznia:

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

Dostęp do silnika bazy danych

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

Zauważ, że za pomocą SWITCH() funkcji, musisz za każdym razem podać pełny predykat, więc nie musisz ograniczać się do używania tylko id_dostawcy. Dla wartości domyślnej użyj predykatu, który jest oczywisty dla czytelnika, że ​​jest PRAWDA, np. 1 = 1 lub po prostu TRUE :)

Coś, co może nie być oczywiste, to fakt, że logika SWITCH() funkcja nie powoduje zwarcia, co oznacza, że ​​każde wyrażenie w funkcji musi mieć możliwość bezbłędnej oceny. Jeśli potrzebujesz logiki do zwarcia, będziesz musiał użyć zagnieżdżonej IIF() funkcje.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Domyślny format daty Oracle to RRRR-MM-DD, DLACZEGO?

  2. Wygeneruj losową datę w Oracle za pomocą DBMS_RANDOM

  3. Transakcje autonomiczne w Sybase ASE 15,5

  4. Czy w ORACLE istnieje sposób na połączenie wielu wierszy w jeden, przy użyciu dwóch tabel, w których końcowe wartości są oddzielone przecinkami?

  5. Wypełnij wiersze w kolumnie A wartością z kolumny B, jeśli warunek w kolumnie A jest spełniony