Поисковый CASE
CASE WHEN <bool_expr> THEN <result> [WHEN <bool_expr> THEN <result> …] [ELSE <defaultresult>] END
Здесь <bool_expr> выражение, которое даёт тройной логический результат: TRUE
, FALSE
или NULL
.Первое выражение, возвращающее TRUE
, определяет результат.Если нет выражений, возвращающих TRUE
, то в качестве результата берётся defaultresult из ветви ELSE
.Если нет выражений, возвращающих TRUE
, и ветвь ELSE
отсутствует, результатом будет NULL
.
Как и в простом операторе CASE
, результаты не обязаны быть литеральными значениями: они могут быть полями или именами переменных, сложными выражениями, или NULL
.
CASE
CANVOTE = CASE
WHEN AGE >= 18 THEN 'Yes'
WHEN AGE < 18 THEN 'No'
ELSE 'Unsure'
END;