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

SQL CASE WHEN Syntax

The CASE WHEN statement in SQL is used to perform conditional actions based on specific conditions. It allows you to define multiple conditions and execute different statements based on the conditions.

The basic syntax of the CASE WHEN statement is:


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

Let's break down the syntax:

  • CASE: This keyword initiates the CASE WHEN statement.
  • WHEN condition1 THEN result1: This is the first condition to check. If the condition1 is true, it executes the result1 statement.
  • WHEN condition2 THEN result2: This is the second condition to check. If the condition2 is true, it executes the result2 statement.
  • ...: You can add multiple WHEN conditions based on your requirements.
  • ELSE resultN: This is an optional part. If none of the above conditions are true, the resultN statement is executed.
  • END: This keyword marks the end of the CASE WHEN statement.

Here's an example that shows how to use the CASE WHEN statement:


SELECT 
   name,
   CASE
      WHEN age < 18 THEN 'Minor'
      WHEN age >= 18 AND age < 65 THEN 'Adult'
      ELSE 'Senior'
   END AS age_group
FROM 
   students;

In this example, the CASE WHEN statement is used to categorize students based on their age. If the age is less than 18, it returns 'Minor'. If the age is between 18 and 65, it returns 'Adult'. Otherwise, it returns 'Senior'.

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

Проблема: Как использовать синтаксис "case when" в SQL?

SQL (Structured Query Language) является языком программирования, используемым для работы с реляционными базами данных. Часто при выполнении запросов возникает необходимость в выполнении различных действий в зависимости от значений в столбце или условиях запроса. Синтаксис "case when" предоставляет возможность выполнять логику в SQL запросах с использованием условных операторов.

Синтаксис

Синтаксис "case when" состоит из ключевого слова CASE, условного выражения WHEN, результатирующего выражения THEN и, возможно, ELSE.


CASE 
    WHEN условие1 THEN результат1
    WHEN условие2 THEN результат2
    ...
    ELSE результат_по_умолчанию
END;

Несколько блоков WHEN могут быть добавлены, чтобы обрабатывать различные условия. Если ни одно из условий не соблюдается, то возвратится результат по умолчанию, указанный в блоке ELSE.

Результирующее выражение в блоке THEN может быть как конкретным значением, так и другим SQL выражением или функцией.

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

Давайте рассмотрим несколько примеров, чтобы продемонстрировать, как работает синтаксис "case when".

Пример 1:


SELECT name, 
    CASE 
        WHEN age < 18 THEN 'Несовершеннолетний'
        ELSE 'Совершеннолетний'
    END AS status
FROM students;

В этом примере для каждого студента из таблицы "students" мы проверяем их возраст. Если возраст меньше 18 лет, то статусом будет "Несовершеннолетний", в противном случае статус будет "Совершеннолетний". Результат будет содержать имена студентов и их статусы.

Пример 2:


SELECT name, 
    CASE 
        WHEN grade >= 90 THEN 'Отлично'
        WHEN grade >= 80 THEN 'Хорошо'
        WHEN grade >= 70 THEN 'Удовлетворительно'
        ELSE 'Неудовлетворительно'
    END AS result
FROM grades;

В этом примере мы проверяем оценку каждого ученика из таблицы "grades". В зависимости от оценки, результат будет соответствующим: "Отлично" для оценки 90 или выше, "Хорошо" для оценок от 80 до 89, "Удовлетворительно" для оценок от 70 до 79 и "Неудовлетворительно" для всех остальных оценок.

Пример 3:


SELECT 
    CASE 
        WHEN column1 > 10 THEN column2 * 2
        ELSE column3 + 5
    END AS result
FROM table;

В этом примере мы используем значение столбца "column1" для принятия решения о вычислении значения столбца "result". Если "column1" больше 10, то мы умножаем значение "column2" на 2, в противном случае мы прибавляем 5 к значению "column3".

Заключение

Синтаксис "case when" предоставляет мощный инструмент для выполнения условной логики в SQL запросах. Он позволяет нам выполнять различные действия в зависимости от значений в столбцах или условий в запросе. Используйте приведенные выше примеры и адаптируйте их под свои потребности, чтобы получать нужные результаты. Удачи!

Видео по теме

Intermediate SQL Tutorial | Case Statement | Use Cases

Writing CASE WHEN Statements in SQL (IF/THEN)

SQL Case When Statement | SQL Fundamentals | SQL Tutorial

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

💻 SQL: оператор CASE WHEN ELSE ELSE

Использование предикатов WHERE в SQL: простой и понятный гайд для начинающих

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

Как посмотреть представление в SQL Server: простой способ!

Множество sql case when