В этом учебном материале вы узнаете, как использовать оператор IF-THEN-ELSE в Oracle/PLSQL c синтаксисом и примерами.
Описание
В Oracle, оператор IF-THEN-ELSE используется для выполнения кода при условие TRUE (истинно), или выполнения другой код, если условие принимает значение FALSE (ложь).
Синтаксис (IF-THEN)
{...выполняется, когда УСЛОВИЕ истинно (TRUE)...}
END IF;
Используете синтаксис IF-THEN, если хотите выполнять операторы, только когда условие истинно.
Синтаксис (IF-THEN-ELSE)
{... выполняется, когда УСЛОВИЕ истинно (TRUE)...}
ELSE
{... выполняется когда УСЛОВИЕ ложно (FALSE)...}
END IF;
Если вы хотите выполнить один набор предложений, когда условие истинно, используете синтаксис IF-THEN-ELSE, или другой набор предложений, если условие ложно.
Синтаксис (IF-THEN-ELSIF)
{... выполняется, когда УСЛОВИЕ1 истинно (TRUE)...}
ELSIF УСЛОВИЕ2 THEN
{... выполняется, когда УСЛОВИЕ2 истинно (TRUE)...}
ELSE
{... выполняется, когда оба: УСЛОВИЕ1 и УСЛОВИЕ2 ложно (FALSE)...}
END IF;
Используете синтаксис IF-THEN-ELSIF-ELSE, если хотите выполнить один набор предложений, когда УСЛОВИЕ1 принимает значение истина (TRUE); другой набор предложений, когда УСЛОВИЕ2 истинно (TRUE); или третий набор предложений, когда все предыдущие условия (то есть: УСЛОВИЕ1 и УСЛОВИЕ2) являются ложными (FALSE).
Примечание
- После того, как условие истинно (TRUE), оператор IF-Then-Else будет выполнять заявленный код и не оценит условие дальше.
- Если условие ложно (FALSE), то выполняется часть ELSE оператора IF-Then-Else.
- Важно отметить, что участки ELSIF и ELSE являются дополнительными.
Пример
Ниже приведен пример использования оператора IF-Then-Else в теле функции Oracle:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
CREATE OR REPLACE Function IncomeLevel ( name_in IN varchar2 ) RETURN varchar2 IS monthly_value number(6); ILevel varchar2(20); cursor c1 is SELECT monthly_income FROM employees WHERE name = name_in; BEGIN open c1; fetch c1 into monthly_value; close c1; IF monthly_value <= 4000 THEN ILevel := 'Low Income'; ELSIF monthly_value > 4000 and monthly_value <= 7000 THEN ILevel := 'Avg Income'; ELSIF monthly_value > 7000 and monthly_value <= 15000 THEN ILevel := 'Moderate Income'; ELSE ILevel := 'High Income'; END IF; RETURN ILevel; END; |
В этом примере оператора IF-THEN-ELSE, мы создали функцию IncomeLevel. Она имеет один параметр name_in и возвращает varchar2. Функция вернет ILevel (уровень доходов) на основе employee's name (имени служащего).