Case When SQL: примеры и объяснение использования
Конструкция <code>CASE WHEN</code> в SQL используется для выполнения условных операций. Она позволяет задать различные варианты выполнения кода в зависимости от соответствия определенному условию. Вы можете использовать <code>CASE WHEN</code> для удобного и гибкого управления логикой запроса в SQL. Рассмотрим примеры кода для более подробного объяснения.
Представим, что у нас есть таблица <code>employees</code> со следующими столбцами: <code>id</code>, <code>name</code>, <code>position</code>, <code>salary</code>. Мы хотим создать новый столбец <code>salary_category</code>, который будет содержать категорию зарплаты для каждого сотрудника.
Пример 1:
SELECT
name,
salary,
CASE
WHEN salary < 1000 THEN 'Низкая зарплата'
WHEN salary >= 1000 AND salary < 5000 THEN 'Средняя зарплата'
WHEN salary >= 5000 THEN 'Высокая зарплата'
ELSE 'Неизвестная зарплата'
END AS salary_category
FROM employees;
В этом примере мы используем конструкцию <code>CASE WHEN</code> для определения категории зарплаты для каждого сотрудника. Если зарплата меньше 1000, устанавливаем значение 'Низкая зарплата'. Если зарплата больше или равна 1000 и меньше 5000, значение будет 'Средняя зарплата'. Если зарплата больше или равна 5000, значение будет 'Высокая зарплата'. В случае, если значение зарплаты не соответствует ни одному из указанных условий, мы устанавливаем значение 'Неизвестная зарплата'.
Пример 2:
UPDATE employees
SET position = CASE
WHEN position = 'Manager' THEN 'Senior Manager'
WHEN position = 'Assistant' THEN 'Junior Assistant'
ELSE position
END;
В этом примере мы используем конструкцию <code>CASE WHEN</code> для обновления значений в столбце <code>position</code>. Если значение столбца равно 'Manager', мы обновляем его на 'Senior Manager'. Если значение равно 'Assistant', мы обновляем его на 'Junior Assistant'. В противном случае, значение остается без изменений.
Конструкция <code>CASE WHEN</code> может быть использована в других контекстах, например, при выборке данных из нескольких таблиц, объединении данных и т.д. Она позволяет гибко управлять логикой SQL запросов в зависимости от заданных условий.
В данном ответе были приведены два примера, но с использованием <code>CASE WHEN</code> можно создавать более сложные и многоуровневые условия. Эта конструкция предоставляет мощный инструмент для управления логикой запросов и выполнения различных операций в SQL.