Если нам нужно заменить значения в колонках на основе определенных условий, необходимо использовать конструкцию CASE WHEN
.
Если описать это более просто, то получится:
ЕСЛИ A выполняет какое-то условие, ТО выводим B
ЕСЛИ не выполняет, ТО выводим С
Рассмотрим на примере, как она работает.
Выведем команды club
, имена футболистов long_name
и признак совершеннолетия футболиста (1 - если футболисту больше 18 лет, а 0 - если меньше) и назовем колонку adult_flg
:
select
long_name,
club,
case
when age >= 18 then 1
else 0
end as adult_flag
from
fifa_players_2018
Давайте разберемся с тем, что мы написали:
case
- начинаем условное выражение, case пишется всегда как определитель условия;when age >= 18 then 1
- условие и что мы получаем, если оно выполняется;else 0
- результат во всех остальных случаях, если предыдущие условие when не выполнилось;end adult_flag
- называем результирующую колонку (после end as можно не писать).