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 запросах. Он позволяет нам выполнять различные действия в зависимости от значений в столбцах или условий в запросе. Используйте приведенные выше примеры и адаптируйте их под свои потребности, чтобы получать нужные результаты. Удачи!