Операция выбора case

  • Часть 1
  • | 2
  • | 3

Операция выбора CASE позволяет определить результат в столбце ТРЗ, исходя из определенных условий.    Имеются две формы операции CASE: простая и с поиском. Простая форма имеет следующий синтаксис: CASE <выражение> {WHEN <значение1> THEN результат1}

[{WHEN <значение2> THEN результат2}] ... [ ELSE результат(N+1)] END.

В этой форме последовательно сравниваются значения при фразах WHEN со значением заданного выражения. При первом же совпадении возвращается значение  при  соответствующей  фразе  THEN.  Если  совпадений  нет,  то возвращается результат(N+1) при фразе ELSE. Синтаксис операции CASE с поиском имеет следующий вид: CASE {WHEN <условие_поиска1> THEN результат1} [{ WHEN<условие_поиска2> THEN результат2}]... [ ELSE результат(N+1) ] END.

В этом случае последовательно проверяются все условия при фразах WHEN. Если условие истинно, то возвращается результат соответствующей фразы THEN. Если ни одно условие при фразах WHEN ни оказалось истинным, возвращается результат(N+1) при фразе ELSE.

В обоих вариантах в качестве результата после фраз THEN или ELSE может быть задано либо выражение (которое может включать константы, имена столбцов, функции, а также арифметические операции и операцию конкатенации), либо NULL-значение. Если фраза ELSE отсутствует, то операция CASE при отсутствии совпадения (или истинного условия) возвращает NULL.

Рассмотрим примеры использование операции CASE в списке возвращаемых элементов предложения SELECT.

Приведем пример простой операции CASE. Пусть необходимо вывести следующую информацию о ремонтных заявках абонента, имеющего лицевой счет с номером '115705': номер заявки, номер лицевого счета абонента, сделавшего заявку, код неисправности. В зависимости от значения поля Executed необходимо вывести, погашена заявка или нет. Запрос будет выглядеть следующим образом: SELECT RequestCD,

предыдущаяследующая