Условные выражения CASE
Обеспечивают использование логики
IF-THEN-ELSE
в пределах SQL-оператора.
Используют два метода:
Выражение
CASE
Функция
DECODE
Два метода, которые используются, чтобы реализовать условную обработку (логику IF-THEN-ELSE) в SQL-операторе, - это выражение CASE и функция DECODE.
Отметьте: Выражение CASE удовлетворяет ANSI SQL. Функция DECODE специфической для синтаксиса Oracle.
Выражение CASE
Упрощает условные запросы, делая работу оператора IF-THEN-ELSE
:

Выражения CASE позволяют Вам использовать логику IF-THEN-ELSE в SQL-операторах, не имея необходимости вызывать процедуры.
В простом условном выражении CASE сервер Oracle ищет первую пару WHEN ... THEN, для которой expr равно comparison_expr и возвращает return_expr. Если ни одна из пар WHEN ... THEN не удовлетворяет этому условию, и если выражение else существует, сервер Oracle возвращает else_expr. Иначе, сервер Oracle возвращает null. Нельзя указsdать NULL для всех return_exprs и для else_expr.
Выражения expr и comparison_expr должны иметь тот же самый тип данных, который может быть CHAR, VARCHAR2, NCHAR или NVARCHAR2. Все возвращаемые значения (return_expr) должны иметь одинаковый тип данных.