Условный оператор IF позволяет выполнить ряд команд, если указанное условие истинно. Внутри него может быть сколько угодно не обязательных алтернативных условий ELSE IF, и одного необязательного слова ELSE, определяющего что делать, если ни одно условие не выполнено.
-- OracleIF i >3 THEN delete from tblname where id>40;ELSIF i=-4 then -- альтернативное условие delete from tblname where id=4;ELSE delete from tblname ;END if; -- MySQLIF i >3 THEN delete from tblname where id>40;ELSEIF i=-4 then -- альтернативное условие delete from tblname where id=4;ELSE delete from tblname ;END IF; -- в PostgreSQL ELSEIF синоним ELSIF,-- так что оба приведенных выше примера верны
Оператор выбора
В первом синтаксисе оператор выбора CASE позволяет выполнить тот или иной код в зависимости от значения указанного выражения. Во втором синтаксисе конструкция CASE аналогична условному оператору. Обратите внимание, что в отличие от CASE, используемого в обычных командах SQL, этот оператор завершается словами END CASE, а не просто END. Данный оператор не поддерживается в PostgreSQL.
-- OracleCASE iWHEN 2 THEN i:=4;WHEN 5 THEN i:=0;ELSE i:=5;END CASE; -- MySQLCASE iWHEN 2 THEN set i:=4;WHEN 5 THEN set i:=0;ELSE set i:=5;END CASE;
Метки
Метки полезны, когда есть вложенные циклы и нужно выйти из внешнего внутри вложенного. Фактически они именует блок или цикл. А в MySQL они обязательны для операторов выхода из цикла и продолжения итерации.
-- Oracle, PostgreSQL<<l1>> -- MySQL l1: