Примеры использования оператора 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!

Видео по теме

Оператор CASE SQL. Примеры CASE WHEN

Условия в SQL и условные SQL запросы CASE, WHEN, THEN, ELSE , END в базах данных SQLite

23. MySQL 8 IF и CASE

Похожие статьи:

Как узнать версию mysql сервера?

Примеры использования оператора case when then else в MySQL