Най-близката аналогия е SWITCH()
функция напр.
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;
Имайте предвид, че с SWITCH()
трябва да предоставяте пълния предикат всеки път, така че не сте ограничени да използвате само доставчик_id. За стойността по подразбиране използвайте предикат, който е очевиден за човешкия читател, че е ВЯРНА, напр. 1 = 1
или наистина просто TRUE
:)
Нещо, което може да не е очевидно е, че логиката в SWITCH()
функцията не създава късо съединение, което означава, че всеки израз във функцията трябва да може да бъде оценен без грешка. Ако имате нужда от логика за късо съединение, тогава ще трябва да използвате вложен IIF()
функции.