Простой CASE
CASE <test-expr> WHEN <expr> THEN <result> [WHEN <expr> THEN <result> ...] [ELSE <defaultresult>] END
При использовании этого варианта test-expr сравнивается с первым expr,затем вторым expr и так далее,до тех пор, пока не будет найдено совпадение, и тогда возвращается соответствующий результат.Если совпадений не найдено, то возвращается defaultresult из ветви ELSE.Если нет совпадений, и ветвь ELSE отсутствует, то возвращается значение NULL.
Совпадение эквивалентно оператору “=”, то естьесли test-expr имеет значение NULL, то он не соответствует ни одному из expr, даже тем, которые имеют значение NULL.
Результаты необязательно должны быть литеральными значениями, они также могут быть именами полей, переменными, сложными выражениями или NULL.
CASESELECT
NAME,
AGE,
CASE UPPER(SEX)
WHEN 'M' THEN 'Male'
WHEN 'F' THEN 'Female'
ELSE 'Unknown'
END AS SEXNAME,
RELIGION
FROM PEOPLE
Сокращённый вид простого оператора CASE используется в функции DECODE.