CASE WHEN с несколькими условиями

CASE WHEN С НЕСКОЛЬКИМИ УСЛОВИЯМИ

В нашем прошлом примере у нас было всего одно условие. Давайте попробуем добавим больше условий!

Мы хотим определить класс игрока по его рейтингу overall. Считаем, что:

  • overall от 85 это ‘Top’;
  • overall от 80 до 84 это ‘Good’’;
  • overall от 75 до 79 это ‘Average’’;
  • overall ниже 75 это ‘Bad’.

Получается:

select
    long_name,
    club,
    case
        when overall >= 85 then 'Top' 
        when overall between 80 and 84 then 'Good'
        when overall between 75 and 79 then 'Average'
        else 'Bad'
    end rating_class
from
    fifa_players_2018

Как видите, ничего сложного! Мы просто увеличили количество конструкций WHEN __ THEN __.

Несложно заметить, что CASE и END мы пишем с одним отступом, а условия с другим. Это нужно, чтобы лучше воспринимать список условий.