Печать      Открыть версию интерактивной справки в формате PDF


Предыдущий раздел

Следующий раздел

Операторы выбора

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

Case (переключатель)

Эта форма оператора выбора Case называется также формой CASE (поиск). Вычисляется значение выражения1, затем значение выражения WHEN. Если значение выражения1 равно значению какого-либо выражения WHEN, результатом оператора является значение соответствующего выражения THEN.

Если значение выражения1 равно результатам выражений нескольких фраз WHEN, результат оператора определяется только первым соответствием.

Если не наблюдается равенства ни одному выражению WHEN, результатом оператора является значение выражения ELSE. Если выражение ELSE не задано, результатом оператора является неопределенное значение (NULL).

Называется также оператором Case (If).

Синтаксис:

CASE выражение1

WHEN выражение THEN выражение

{WHEN выражение... THEN выражение...}

ELSE выражение

END

Где:

CASE

Начало оператора CASE. Далее должно следовать выражение и один либо несколько операторов WHEN и THEN, необязательный оператор ELSE и ключевое слово END.

WHEN

Задает условие, которое должно быть выполнено.

THEN

Задает присваиваемое оператору значение в случае выполнения условия соответствующего выражения WHEN.

ELSE

Задает присваиваемое оператору значение при невыполнении условия ни одного оператора WHEN. Если эта часть опущена, по умолчанию принимается равным ELSE NULL.

END

Завершает оператор CASE.

Пример

CASE Score-par

WHEN -5 THEN 'Birdie on Par 6'

WHEN -4 THEN 'Must be Tiger'

WHEN -3 THEN 'Three under par'

WHEN -2 THEN 'Two under par'

WHEN -1 THEN 'Birdie'

WHEN 0 THEN 'Par'

WHEN 1 THEN 'Bogey'

WHEN 2 THEN 'Double Bogey'

ELSE 'Triple Bogey or Worse'

END

В примере выше операторы WHEN должны задавать строгое равенство; условие для оператора WHEN

WHEN < 0 THEN 'Under Par'

является недопустимым, т.к. операторы сравнения не допускаются.

Case (If)

В этой форме оператора Case выполняется проверка всех условий WHEN, и, если условие выполняется, результатом оператора является значение соответствующего выражения THEN.

Если не выполняется ни одно из условий WHEN, результатом оператора является значение по умолчанию, заданное выражением ELSE. Если выражение ELSE не задано, результатом оператора является неопределенное значение (NULL).

Называется также оператором Case (переключатель).

Синтаксис:

CASE

WHEN условие_запроса1 THEN выражение1

{WHEN условие_запроса2 THEN выражение2}

{WHEN условие_запроса... THEN выражение...}

ELSE выражение

END

Где:

CASE

Начало оператора CASE. Далее должен следовать один либо несколько операторов WHEN и THEN, необязательный оператор ELSE и ключевое слово END.

WHEN

Задает условие, которое должно быть выполнено.

THEN

Присваиваемое оператору значение в случае выполнения условия соответствующего выражения WHEN.

ELSE

Задает значение при невыполнении условия ни одного из операторов WHEN. Если эта часть опущена, по умолчанию принимается равным ELSE NULL.

END

Завершает оператор CASE.

Пример

CASE

WHEN score-par < 0 THEN 'Under Par'

WHEN score-par = 0 THEN 'Par'

WHEN score-par = 1 THEN 'Bogie'

WHEN score-par = 2 THEN 'Double Bogey'

ELSE 'Triple Bogey or Worse'

END

В отличие от формы 'переключатель' оператора CASE, операторы WHEN в форме 'If' допускают использование операторов сравнения; условие WHEN

WHEN < 0 THEN 'Under Par'

является допустимым.


Опубликовано в Сентябрь 2017 Copyright © Oracle, 2005, 2017 гг. Все права защищены.Legal Notices.