Конструкция CASE в PostgreSQL представляет собой условное выражение, которое напоминает операторы if/else в других языках программирования. 12
Общая форма конструкции имеет следующий синтаксис: 2
CASE WHEN condition_1 THEN result_1 WHEN condition_2 THEN result_2 [WHEN ...] [ELSE else_result] END. 2
В этом синтаксисе каждое условие (condition1, condition2…) — это выражение типа boolean, которое возвращает либо true, либо false. 2
Процесс работы конструкции: 1
Существует также «простая» форма выражения CASE: 1
CASE выражение WHEN value_1 THEN result_1 WHEN value_2 THEN result_2 [WHEN ...] [ELSE result] END. 1
В такой форме сначала вычисляется первое выражение, а затем его результат сравнивается с выражениями значений в предложениях WHEN, пока не будет найдено равное ему. 1 Если такого значения не находится, возвращается результат предложения ELSE (или NULL). 1