Примеры использования оператора case when then else в MySQL
mysql CASE WHEN THEN ELSE примеры:
SELECT name,
CASE
WHEN age < 18 THEN 'Minor'
WHEN age >= 18 AND age < 65 THEN 'Adult'
ELSE 'Senior'
END AS age_group
FROM users;
В этом примере используется оператор CASE WHEN THEN ELSE для создания нового столбца с группой возраста для каждого пользователя. Если возраст меньше 18 лет, пользователь считается "Минором", если возраст от 18 до 65 лет, пользователь считается "Взрослым", в противном случае - "Старше".
SELECT name,
CASE
WHEN gender = 'Male' THEN 'Mr.'
WHEN gender = 'Female' THEN 'Ms.'
ELSE ''
END || name AS salutation
FROM users;
В этом примере используется оператор CASE WHEN THEN ELSE для создания нового столбца с приветствием для каждого пользователя. Если пол пользователя - "Мужской", к имени добавляется "Mr.", если пол - "Женский", добавляется "Ms.", в противном случае - приветствие состоит только из имени пользователя.
Детальный ответ
Привет, студент!
Сегодня мы поговорим о применении оператора CASE в MySQL. Оператор CASE позволяет вам выполнить различные действия в зависимости от значения определенного выражения. Это очень полезный инструмент, который поможет вам упростить и улучшить ваши запросы к базе данных.
Оператор CASE в MySQL имеет следующий синтаксис:
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE result
END
Давайте рассмотрим несколько примеров использования оператора CASE в MySQL.
Пример 1: Простое условное выражение
Предположим, у нас есть таблица "students" с полями "name", "age" и "grade". Мы хотим добавить новое поле в эту таблицу, называемое "status", которое будет указывать, взрослый ли студент или нет.
ALTER TABLE students
ADD COLUMN status VARCHAR(10);
UPDATE students
SET status = CASE
WHEN age >= 18 THEN 'Adult'
ELSE 'Minor'
END;
В этом примере мы добавляем новое поле "status" и используем оператор CASE, чтобы проверить, является ли студент взрослым (если его возраст больше или равен 18) или нет. Если студент взрослый, то он будет иметь значение "Adult" в поле "status", в противном случае - значение "Minor".
Пример 2: Использование оператора CASE внутри запроса SELECT
Допустим у нас есть таблица "orders" с полями "id", "product" и "quantity". Мы хотим получить список продуктов и указать, их количество с использованием обозначений "мало", "средне" или "много", в зависимости от значения количества.
SELECT product, quantity,
CASE
WHEN quantity < 10 THEN 'Мало'
WHEN quantity >= 10 AND quantity < 100 THEN 'Средне'
ELSE 'Много'
END AS quantity_description
FROM orders;
В этом примере мы используем оператор CASE внутри запроса SELECT, чтобы проверить, сколько товаров есть в наличии. Затем, в зависимости от значения количества, мы указываем соответствующую оценку (мало, средне или много) в новом столбце "quantity_description".
Пример 3: Использование оператора CASE для вычислений
Допустим у нас есть таблица "employees" с полями "id", "name" и "salary". Мы хотим вычислить ежегодную зарплату сотрудников, учитывая их текущую зарплату и количество месяцев, за которые они были на работе.
SELECT name, salary, months_worked,
(CASE
WHEN salary < 1000 THEN salary * months_worked
WHEN salary >= 1000 AND salary < 5000 THEN salary * months_worked * 0.9
ELSE salary * months_worked * 0.8
END) AS annual_salary
FROM employees;
В этом примере мы используем оператор CASE, чтобы вычислить ежегодную зарплату сотрудников в зависимости от их текущей зарплаты и количества месяцев, за которые они были на работе. Мы применяем различные коэффициенты к зарплате в зависимости от ее значения.
Это были лишь некоторые примеры использования оператора CASE в MySQL. Вы можете попробовать различные варианты и настроить их под ваши конкретные потребности. Удачи в изучении MySQL!