Оператор CASE, в зависимости от указанных условий, возвращает одно из множества возможных значений.
Может быть использован в одной из двух форм записи:
простое выражение CASE для определения результата сравнивает выражение с набором простых выражений;
поисковое выражение CASE для определения результата вычисляет набор логических выражений.
При использовании первой синтаксической формы условие WHEN удовлетворяется, когда значение проверяемого выражения станет равным значению выражения, указанного в предложении WHEN. При использовании второй синтаксической формы условие WHEN удовлетворяется, если предикат принимает значение TRUE. При удовлетворении условия оператор CASE возвращает значение, указанное в соответствующем предложении THEN. Если ни одно из условий WHEN не выполнилось, то будет использовано значение, указанное в предложении ELSE.
Синтаксис
--Простое выражение CASE input_expression WHEN when_expression THEN result_expression [ ...n ] [ ELSE else_result_expression ] END -- Поисковое выражение CASE WHEN boolean_expression THEN result_expression [ ...n ] [ ELSE else_result_expression ] END
Аргументы
input_expression
Выражение, полученное при использовании простого формата функции CASE.
when_expression
Простое выражение, с которым сравнивается input_expression.
boolean_expression
Логическое выражение, полученное при использовании поискового формата функции CASE.
result_expression
Возвращаемое выражение, когда when_expression имеет значение TRUE.
else_result_expression
Если ни одно из условий WHEN не выполнилось, то будет использовано значение, указанное в предложении ELSE.