РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
20 of 150 menu

Команда CASE

Команда CASE используется для реализации условной логики в SQL-запросах. Она позволяет возвращать разные значения в зависимости от выполнения заданных условий.

Синтаксис

CASE WHEN condition THEN result WHEN condition THEN result ELSE result END

Таблицы для примеров

employees
id name age salary
1 Ivan 25 40000
2 Petr 30 45000
3 Sergey 28 42000
4 Olga 35 55000
5 Dmitry 40 60000

Пример

Давайте определим уровень дохода сотрудника на основе значения его зарплаты:

SELECT name, salary, CASE WHEN salary < 45000 THEN 'low' WHEN salary BETWEEN 45000 AND 55000 THEN 'medium' ELSE 'high' END AS salary_level FROM employees ORDER BY id

Результат выполнения кода:

name salary salary_level
Ivan 40000 low
Petr 45000 medium
Sergey 42000 low
Olga 55000 medium
Dmitry 60000 high

Пример

Давайте используем CASE для формирования текстового описания возраста сотрудника:

SELECT name, age, CASE WHEN age < 30 THEN 'young' WHEN age BETWEEN 30 AND 39 THEN 'adult' ELSE 'senior' END AS age_group FROM employees ORDER BY id

Результат выполнения кода:

name age age_group
Ivan 25 young
Petr 30 adult
Sergey 28 young
Olga 35 adult
Dmitry 40 senior

Пример

Давайте используем CASE для сортировки данных по пользовательскому приоритету:

SELECT name, salary FROM employees ORDER BY CASE WHEN salary >= 55000 THEN 1 WHEN salary >= 45000 THEN 2 ELSE 3 END salary DESC

Результат выполнения кода:

name salary
Olga 55000
Dmitry 60000
Petr 45000
Sergey 42000
Ivan 40000

Смотрите также

  • команду WHERE,
    которая фильтрует строки по условию
  • функцию COALESCE,
    которая берёт первое не-NULL значение
  • функцию IFNULL,
    которая подменяет NULL на значение
  • функцию NULLIF,
    которая возвращает NULL при совпадении
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить