Перейти к основному содержимому
Версия: 7.0

Оператор CASE

Оператор CASE создает действие, реализующее ветвление.

Синтаксис

CASE [exclusionType]
WHEN condition1 THEN action1
...
WHEN conditionN THEN actionN
[ELSE elseAction]

Описание

Оператор CASE создает действие, которое выполняет одно из переданных ему действий в зависимости от выполнения условий выбора. Условия выбора задаются выражениями, указанными в блоках WHEN. Если условие выбора выполняется, то будет выполнено действие указанное в соответствующем блоке THEN. Если ни одно из условий не выполняется, то будет выполнено действие, определенное в блоке ELSE, если этот блок указан.

Параметры

  • exclusionType

    Тип взаимоисключения. Определяет, могут ли несколько условий выбора выполняться одновременно при некотором наборе параметров:

    • EXCLUSIVE - никакие из условий не могут выполняться одновременно.
    • OVERRIDE - несколько условий могут выполняться одновременно; в этом случае будет выполнено действие, соответствующее первому выполняемому условию. Используется по умолчанию.
  • condition1 ... conditionN

    Выражения, значения которых определяют условия выбора.

  • action1 ... actionN

    Контекстно-зависимые операторы, описывающие действия, которые могут быть вызваны при выполнении соответствующего условия.

  • elseAction

    Контекстно-зависимый оператор, описывающий действие, которое будет выполнено, если ни одно из условий не выполняется.

Примеры

test = DATA INTEGER (INTEGER);
caseActionTest(a) {
CASE
WHEN test(a) > 7 THEN MESSAGE '>7';
WHEN test(a) > 6 THEN MESSAGE '>6';
WHEN test(a) > 5 THEN MESSAGE '>5';
}