🔍 Как использовать оператор case when в SQL запросах для обработки условий

Ключевое слово CASE в SQL

Ключевое слово CASE в SQL используется для выполнения условных операций в запросах. Это позволяет выбирать различные значения, основываясь на условиях, заданных в запросе.

Примеры использования ключевого слова CASE:

SELECT column_name,
           CASE
               WHEN condition1 THEN result1
               WHEN condition2 THEN result2
               ELSE result
           END
    FROM table_name;

В этом примере, если условие condition1 выполняется, возвращается result1. Если condition1 не выполняется, но выполняется condition2, возвращается result2. В противном случае, возвращается result.

Вы также можете использовать ключевое слово CASE для выполнения арифметических операций:

SELECT column_name,
           CASE
               WHEN condition1 THEN column_value * 2
               WHEN condition2 THEN column_value + 5
               ELSE column_value
           END
    FROM table_name;

В этом примере, если условие condition1 выполняется, возвращается удвоенное значение column_value. Если condition1 не выполняется, но выполняется condition2, к column_value добавляется 5. В противном случае, возвращается column_value без изменений.

Детальный ответ

Применение условных операторов в SQL запросах

SQL (Structured Query Language) - это язык программирования, который используется для взаимодействия с реляционными базами данных. В SQL часто возникает необходимость в выполнении условных операций, чтобы работать с различными значениями и принимать решения на основе этих значений. Одним из способов реализации условных операций в SQL является оператор CASE WHEN.

Оператор CASE WHEN

Оператор CASE WHEN позволяет осуществлять условные операции на основе заданных условий. Он может использоваться в выражениях SELECT, WHERE, ORDER BY и других местах в SQL запросе. Оператор CASE WHEN имеет следующий синтаксис:

CASE
    WHEN condition1 THEN result1
    WHEN condition2 THEN result2
    ...
    ELSE result
END

В операторе CASE WHEN мы указываем различные условия (condition1, condition2 и т.д.) и соответствующие результаты (result1, result2 и т.д.). Если все условия не выполняются, тогда используется значение по умолчанию (ELSE result).

Примеры использования оператора CASE WHEN

Давайте рассмотрим несколько примеров, чтобы лучше понять, как использовать оператор CASE WHEN в SQL запросах.

Пример 1: Подсчет количества студентов в зависимости от их оценок

Предположим, у нас есть таблица "Students" со следующими полями: "Name" (имя студента) и "Grade" (оценка студента). Мы хотим подсчитать количество студентов в каждой категории оценок: "Отлично", "Хорошо", "Удовлетворительно". Мы можем использовать оператор CASE WHEN для этой цели:

SELECT
    CASE
        WHEN Grade >= 90 THEN 'Отлично'
        WHEN Grade >= 80 THEN 'Хорошо'
        ELSE 'Удовлетворительно'
    END AS Grade_Category,
    COUNT(*) AS Count
FROM
    Students
GROUP BY
    Grade_Category;

Этот запрос будет выводить количество студентов в каждой категории оценок. Например:

Grade_Category    Count
---------------   -----
Отлично           15
Хорошо            25
Удовлетворительно 10

Пример 2: Фильтрация результатов в запросе

Допустим, мы имеем таблицу "Products" со следующими полями: "Name" (название продукта) и "Price" (цена продукта). Мы хотим выбрать только те продукты, цена которых not higher than $50 (не выше $50) или price == $0 (цена равна $0). Мы можем использовать оператор CASE WHEN в операторе WHERE для этого:

SELECT
    Name,
    Price
FROM
    Products
WHERE
    CASE
        WHEN Price <= 50 OR Price = 0 THEN 1
        ELSE 0
    END = 1;

Этот запрос выберет только те продукты, цена которых не превышает $50 или цена равна $0.

Пример 3: Использование оператора CASE WHEN в выражении ORDER BY

Оператор CASE WHEN также можно использовать для определения порядка сортировки в выражении ORDER BY. Допустим, у нас есть таблица "Employees" со следующими полями: "Name" (имя сотрудника) и "Salary" (зарплата сотрудника). Мы хотим отсортировать сотрудников по возрастанию зарплаты, но сначала отобразить сотрудников с зарплатой выше $100,000. Мы можем использовать оператор CASE WHEN и выражение ORDER BY для этого:

SELECT
    Name,
    Salary
FROM
    Employees
ORDER BY
    CASE
        WHEN Salary > 100000 THEN 0
        ELSE 1
    END,
    Salary ASC;

Этот запрос отсортирует сотрудников по возрастанию зарплаты, но первыми будут сотрудники с зарплатой выше $100,000.

Заключение

Оператор CASE WHEN - это мощный инструмент для реализации условных операций в SQL запросах. Он позволяет выбирать различные результаты в зависимости от заданных условий, фильтровать данные и определять порядок сортировки. Использование оператора CASE WHEN может сделать ваши SQL запросы более гибкими и мощными.

Видео по теме

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

SQL. Условная логика в SELECT. CASE

Урок #17 - CASE | SQL для начинающих

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

🔍 Как использовать оператор case when в SQL запросах для обработки условий

Что такое create trigger sql и как его использовать