Условный оператор предназначен для организации ветвлений в процессе выполнения хранимой процедуры или триггера.
IF <выражение условия 1> THEN <операторы 1> [ ELSEIF <выражение условия 2> THEN <операторы 2> ] .... [ ELSE <операторы N> ] ENDIF
Условный оператор может содержать нуль или несколько ветвей ELSEIF, а после них нуль или одну ветвь ELSE. При его исполнении вычисляется <выражение условия 1>
, результат которого должен быть логического типа. Если его значение TRUE, выполняются <операторы 1>
, и далее управление передается на следующий после ENDIF оператор. Если его значение FALSE, аналогичные действия выполняются с выражениями и операторами последующих ветвей ELSEIF, если они есть. Если ветвей ELSEIF нет или все значения их выражений FALSE, то выполняются <операторы N>
ветви ELSE, или управление передается за ENDIF, если ветви ELSE нет.
if n > -1 and n < 0.5 then call processing(1); elseif n >= 0.5 and n < 2 then call processing(2); elseif n >= 2 and n < 10 then call processing(3); else call processing(4); endif