Оператор выбора
Назначение
Оператор выбора предназначен для организации множественных ветвлений.
Функционально его можно заменить условным оператором с соответствующим количеством условий ELSEIF,
но он имеет более простую и наглядную конструкцию.
Синтаксис
CASE <выражение> WHEN <литерал1 [, литерал]... [, литерал]> THEN <операторы 1> WHEN <литерал2 [, литерал]... [, литерал]> THEN <операторы 2> ............. [WHEN OTHERS THEN <операторы> ] ENDCASE
Описание
Тип литералов и тип CASE-выражения должны быть совместимы.
Значение CASE-выражения последовательно сравнивается с литералами в операторах WHEN.
При первом совпадении значения выражения CASE с литералом одного из оператора WHEN
выполняются операторы, соответствующие этому условию (то есть до следующего оператора WHEN
или до ENDCASE), после чего выполнение оператора выбора завершается.
Если значение выражения CASE не было найдено среди списка литералов,
выполняется ветвь WHEN OTHERS.
Если она отсутствует, управление передается сразу на следующий оператор после ENDCASE.
Пример оператора выбора
case rel_name
when "$$$SYSRL", "$$$ATTRI", "$$$USR" then
definit := "System dictionary table";
when "$$$PROC", "$$$PRCD" then
definit := "System stored procedures table";
when others then
definit := "Unknown table class";
endcase;