CASE WHEN
Часть раздела Продвинутый уровень путешествия по SQL на Coddy. Урок 1 из 27.
Выражение CASE — это конструкция if/else if/else для SQL. Оно находится внутри SELECT (или ORDER BY, или WHERE) и возвращает значение для каждой строки.
SELECT name,
CASE
WHEN score >= 90 THEN 'A'
WHEN score >= 75 THEN 'B'
WHEN score >= 60 THEN 'C'
ELSE 'F'
END AS grade
FROM studentsКаждое условие WHEN проверяется сверху вниз; срабатывает первое совпадение. ELSE необязательно. Без него строки, не соответствующие ни одному условию, получают значение NULL.
Всегда заканчивайте с помощью END и задавайте столбцу имя с помощью AS.
Задание
ЛегкоДоступные таблицы и столбцы:
employees:id,name,department,salary
Для каждого сотрудника верните его name, department и столбец tier, сформированный следующим образом:
'partner', еслиsalary >= 150000(любой отдел)'senior', еслиdepartment = 'eng'иsalary >= 100000'mid', еслиsalary >= 60000'entry'во всех остальных случаях
Отсортируйте по salary в порядке убывания. Обратите внимание, что порядок ветвей WHEN имеет значение: выбирается первое совпадение.
Попробуйте сами
SELECT name, department,
-- уровень с несколькими ветвями WHEN, которые смешивают salary и department
FROM employees
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Продвинутый уровень
Потренируйтесь самостоятельно: Песочница SQL