Оператор Case When в SQL-запросах: примеры и объяснение
Фраза "case when" является частью конструкции языка SQL, которая используется для условного оператора в запросах к базам данных. Синтаксис конструкции "case when":
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
WHEN conditionN THEN resultN
ELSE default_result
END
Здесь мы указываем, что если условие condition1 выполняется, то должен быть возвращен результат result1, если condition2 выполняется, то result2, и так далее. Если ни одно из условий не выполняется, то будет возвращен default_result.
Пример:
SELECT name,
CASE
WHEN age < 18 THEN 'underage'
WHEN age >= 18 AND age < 25 THEN 'young adult'
WHEN age >= 25 AND age < 65 THEN 'adult'
ELSE 'senior'
END AS age_group
FROM users
Здесь мы используем конструкцию "case when", чтобы определить возрастную группу каждого пользователя. Если возраст меньше 18, мы помечаем его "несовершеннолетним". Если возраст от 18 до 25 лет, то это "молодой взрослый". Если возраст от 25 до 65, то это "взрослый", иначе это "пожилой".
Также можно использовать конструкцию "case when" в сочетании с другими функциями SQL, например, для подсчета количества строк, выполняющих определенное условие:
SELECT COUNT(*),
CASE
WHEN age < 18 THEN 'underage'
WHEN age >= 18 AND age < 25 THEN 'young adult'
WHEN age >= 25 AND age < 65 THEN 'adult'
ELSE 'senior'
END AS age_group
FROM users
GROUP BY age_group
Здесь мы считаем количество пользователей в каждой возрастной группе и группируем их по группам. Результат будет выглядеть примерно так:
| COUNT(*) | age_group |
| -------- | -------------|
| 56 | underage |
| 123 | young adult |
| 345 | adult |
| 89 | senior |
Таким образом, конструкция "case when" является мощным инструментом для условной обработки данных в SQL и позволяет создавать разные сценарии в зависимости от определенных условий в запросах к базе данных.