ecf825b2

SELECT


Инструкция SELECT используется для условного выполнения одной из нескольких альтернативных инструкций.

По очереди вычисляется каждое выражение после фразы WHEN. Результат вычисления должен быть равен 0 или 1. Если результат равен 1, то выполняется инструкция, следующая за фразой THEN (которая может быть составной инструкцией, например, IF, DO или SELECT), а затем управление передается фразе END. Если результат равен 0, то управление передается следующей фразе WHEN.

Если ни один из результатов вычисления выражений WHEN не равен 1, то управление передается инструкциям, следующим за OTHERWISE (если они есть). В этом случае отсутствие предложения OTHERWISE приводит к ошибке.

Пример balance = balance - check Select when balance > 0 then say 'Поздравляем! У Вас на счету' balance 'долларов.' when balance = 0 then do say 'Внимание! Баланс равен нулю! ПРЕКРАТИТЕ все траты!' say "Вы подрезали свой счет в этом месяце. Надеемся," say "что Вы не будете подписывать крупные чеки." end Otherwise say "Вы уже перекрыли свой счет." say "Ваш баланс составляет сейчас" balance "долларов." say "Ооо! Остается надеяться, что банк не закроет Ваш счет." end /* Select */

Примечания:

  1. В качестве инструкции может выступать любой оператор присваивания, команда или ключевая инструкция, включающая любую более сложную конструкцию, например, DO, IF или SELECT.

  2. Предложение, содержащее пустую строку, не является инструкцией, поэтому указание за WHEN дополнительной точки с запятой не равнозначно помещению в файл фиктивной инструкции. Для этих целей предназначена инструкция NOP.

  3. Слово THEN нельзя использовать внутри выражения, где оно не предназначается для начала предложения, так как ключевое слово THEN обрабатывается иначе. Если же оно используется, то это может привести к завершению выражения в предложении WHEN посредством слова THEN, указанного без требуемого разделителя ";".



Содержание раздела