CASE WHEN с одним условием

CASE WHEN С ОДНИМ УСЛОВИЕМ

Если нам нужно заменить значения в колонках на основе определенных условий, необходимо использовать конструкцию 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 можно не писать).