Наиболее близкой аналогией является функция SWITCH()
, например.
Oracle:
SELECT supplier_name,
decode(supplier_id, 10000, 'IBM',
10001, 'Microsoft',
10002, 'Hewlett Packard',
'Gateway') result
FROM suppliers;
Доступ к базе данных Engine
SELECT supplier_name,
SWITCH(supplier_id = 10000, 'IBM',
supplier_id = 10001, 'Microsoft',
supplier_id = 10002, 'Hewlett Packard',
TRUE, 'Gateway') AS result
FROM suppliers;
Обратите внимание, что с функцией SWITCH()
вы должны каждый раз указывать полный предикат, поэтому вы не ограничены использованием только supplier_id. В качестве значения по умолчанию используйте предикат, который очевиден для читателя-человека: TRUE, например 1 = 1
или просто TRUE
:)
Что-то, что может быть неочевидным, заключается в том, что логика в функции SWITCH()
не закорачивает, а это означает, что каждое выражение в функции должно быть в состоянии вычисляться без ошибок. Если вам требуется логика для короткого замыкания, вам нужно использовать вложенные функции IIF()
.