Logo Wand.Tools

Генератор SQL CASE

Используйте ИИ для генерации операторов CASE для условной логики в SQL

Руководство по SQL CASE

Руководство по SQL CASE

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

Синтаксис

Основной синтаксис оператора CASE выглядит следующим образом:

CASE
    WHEN условие1 THEN результат1
    WHEN условие2 THEN результат2
    ...
    ELSE результат_по_умолчанию
END
  • условие1, условие2, …: Это условия, которые оцениваются по порядку.
  • результат1, результат2, …: Результат, возвращаемый, если соответствующее условие истинно.
  • результат_по_умолчанию: Результат, возвращаемый, если ни одно из условий не истинно (опционально).

Пример 1: Простой CASE

Предположим, у вас есть таблица employees с колонками id, name и salary. Вы хотите классифицировать сотрудников на основе их зарплаты:

SELECT 
    name,
    salary,
    CASE
        WHEN salary > 100000 THEN 'Высокая'
        WHEN salary BETWEEN 50000 AND 100000 THEN 'Средняя'
        ELSE 'Низкая'
    END AS salary_category
FROM employees;

Этот запрос вернет имя, зарплату и новую колонку salary_category, которая классифицирует зарплату каждого сотрудника как ‘Высокая’, ‘Средняя’ или ‘Низкая’.

Пример 2: CASE в ORDER BY

Вы также можете использовать оператор CASE в предложении ORDER BY для сортировки результатов на основе условной логики:

SELECT 
    name,
    salary
FROM employees
ORDER BY 
    CASE
        WHEN salary > 100000 THEN 1
        WHEN salary BETWEEN 50000 AND 100000 THEN 2
        ELSE 3
    END;

Этот запрос отсортирует сотрудников с высокой зарплатой первыми, затем со средней и низкой зарплатой.

Пример 3: CASE в UPDATE

Оператор CASE также может быть использован в операторе UPDATE для условного обновления записей:

UPDATE employees
SET salary = 
    CASE
        WHEN salary < 50000 THEN salary * 1.1
        WHEN salary BETWEEN 50000 AND 100000 THEN salary * 1.05
        ELSE salary
    END;

Этот запрос увеличит зарплату сотрудников на 10%, если их зарплата меньше 50 000, на 5%, если их зарплата находится в диапазоне от 50 000 до 100 000, и оставит ее неизменной в остальных случаях.

Заключение

Оператор SQL CASE — это мощный инструмент для реализации условной логики в ваших запросах. Он может быть использован в предложениях SELECT, UPDATE, ORDER BY и других, чтобы сделать ваши SQL-запросы более гибкими и динамичными. Практикуйтесь в использовании оператора CASE в различных сценариях, чтобы полностью понять его потенциал.