Как работает CASE в SQL: примеры и объяснения

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

Ниже приведены две часто используемые формы использования CASE:

1. Простая форма:


SELECT column_name,
       CASE
           WHEN condition1 THEN value1
           WHEN condition2 THEN value2
           ...
           ELSE default_value
       END AS alias_name
FROM table_name;

В этой форме условие проверяется поочередно, и когда находится соответствие, возвращается соответствующее значение. Если ни одно из условий не соответствует, то выполняется блок ELSE и возвращается default_value.

Пример:


SELECT first_name,
       grade,
       CASE 
           WHEN grade >= 90 THEN 'A'
           WHEN grade >= 80 THEN 'B'
           WHEN grade >= 70 THEN 'C'
           ELSE 'F'
       END AS letter_grade
FROM students;

2. Сформированная форма:


SELECT column_name,
       CASE expression
           WHEN value1 THEN result1
           WHEN value2 THEN result2
           ...
           ELSE default_result
       END AS alias_name
FROM table_name;

В этой форме CASE использует результат expression для сравнения с value1, value2 и т. д. Если совпадение найдено, возвращается соответствующий результат. Если нет совпадения, выполняется блок ELSE и возвращается default_result.

Пример:


SELECT first_name,
       last_name,
       CASE department_id
           WHEN 1 THEN 'HR'
           WHEN 2 THEN 'Finance'
           WHEN 3 THEN 'IT'
           ELSE 'Unknown'
       END AS department
FROM employees;

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

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

Как работает CASE в SQL

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

Оператор CASE имеет две формы: простую и поисковую.

Простая форма CASE

Простая форма оператора CASE позволяет нам проверить значение определенного столбца или выражения и выполнить соответствующее действие. Она выглядит следующим образом:

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

В примере выше мы выбираем столбец column_name и выполняем условные операции с помощью оператора CASE. Мы проверяем условия condition1, condition2 и так далее, и возвращаем соответствующий результат result1, result2 и так далее. Если ни одно из условий не выполняется, то возвращается значение, указанное в блоке ELSE.

Ниже приведен пример использования простой формы оператора CASE:

        
            SELECT column_name,
                CASE
                    WHEN column_name = 'value1' THEN 'Result 1'
                    WHEN column_name = 'value2' THEN 'Result 2'
                    ELSE 'No Result'
                END
            FROM table_name;
        
    

В примере выше, если значение столбца column_name равно 'value1', то результат будет 'Result 1'. Если значение равно 'value2', то результат будет 'Result 2'. В противном случае, для любых других значений, результат будет 'No Result'.

Поисковая форма CASE

Поисковая форма оператора CASE используется для выполнения поиска в диапазоне значений. Она позволяет нам проверить значение определенного столбца или выражения, а затем возвращать соответствующий результат, если обнаружено совпадение.

Поисковая форма CASE выглядит следующим образом:

        
            SELECT column_name,
                CASE expression
                    WHEN value1 THEN result1
                    WHEN value2 THEN result2
                    ...
                    ELSE result
                END
            FROM table_name;
        
    

В примере выше мы используем выражение expression для поиска значений value1, value2 и так далее в столбце column_name. Если находим совпадение, то возвращаем соответствующий результат result1, result2 и так далее. Если совпадение не найдено, то возвращается значение, указанное в блоке ELSE.

Ниже приведен пример использования поисковой формы оператора CASE:

        
            SELECT order_id,
                CASE order_status
                    WHEN 'New' THEN 'Processing'
                    WHEN 'Shipped' THEN 'In Transiт'
                    WHEN 'Delivered' THEN 'Complete'
                    ELSE 'Unknown'
                END
            FROM orders;
        
    

В примере выше мы проверяем значение столбца order_status и возвращаем соответствующий результат. Если значение равно 'New', то результат будет 'Processing'. Если значение равно 'Shipped', то результат будет 'In Transit'. Если значение равно 'Delivered', то результат будет 'Complete'. Для всех других значений будет возвращено 'Unknown'.

Вывод

Оператор CASE в SQL является полезным инструментом для обработки условных операций в запросах. Он позволяет нам проверить значения столбцов или выражений и выполнить соответствующие действия на основе заданных условий. Мы можем использовать оператор CASE для обработки конкретных значений или поиска значения в диапазоне с помощью условных выражений.

Простая форма оператора CASE позволяет нам выполнять условные операции, используя блоки WHEN, THEN и ELSE. Если ни одно из условий не выполняется, то возвращается значение, указанное в блоке ELSE.

Поисковая форма оператора CASE позволяет нам искать значения в столбцах и возвращать соответствующие результаты. Если значение совпадает со значением в блоке WHEN, то возвращается связанный с ним результат. Если совпадение не найдено, то возвращается значение, указанное в блоке ELSE.

Благодаря оператору CASE мы можем эффективно обрабатывать условные операции в SQL и создавать более гибкие и выразительные запросы.

Видео по теме

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

Условный оператор CASE в SQL

Урок 47 - simple CASE (SQL для Начинающих)

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

Как перезапустить службу SQL Server: подробная инструкция для начинающих

Как открыть SQL Server Configuration Manager: пошаговое руководство

Как работают индексы SQL: легкий понятный гайд для начинающих

Как работает CASE в SQL: примеры и объяснения