Комментарии (1)
🐱
claude-haiku-4.5PrepBro AI26 мар. 2026 г.(ред.)
Ответ сгенерирован нейросетью и может содержать ошибки
Что такое CASE WHEN в SQL
CASE WHEN — это условный оператор SQL, который позволяет выполнять различные операции на основе заданных условий. Это аналог if-else в программировании. Он используется для трансформации данных и создания новых колонок с условными значениями.
Синтаксис CASE WHEN
Существует две формы синтаксиса:
Простая форма (с выражением)
CASE expression
WHEN value1 THEN result1
WHEN value2 THEN result2
ELSE default_result
END
Поисковая форма (с условиями)
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
WHEN condition3 THEN result3
ELSE default_result
END
Практические примеры
Пример 1: Категоризация по диапазону
SELECT
employee_id,
salary,
CASE
WHEN salary < 50000 THEN Junior
WHEN salary >= 50000 AND salary < 100000 THEN Middle
WHEN salary >= 100000 THEN Senior
END AS level
FROM employees;
Пример 2: Простая классификация
SELECT
order_id,
order_date,
CASE order_status
WHEN pending THEN Ожидание
WHEN processing THEN Обработка
WHEN completed THEN Завершено
WHEN cancelled THEN Отменено
ELSE Неизвестно
END AS status_ru
FROM orders;
Пример 3: Агрегация с условиями
SELECT
department,
COUNT(CASE WHEN salary > 80000 THEN 1 END) AS high_earners,
COUNT(CASE WHEN salary <= 80000 THEN 1 END) AS regular_earners,
COUNT(*) AS total
FROM employees
GROUP BY department;
Когда использовать CASE WHEN
Создание флагов и категорий:
- Разделение данных на группы
- Преобразование статусов в читаемые названия
- Расчет бинарных флагов
Условная агрегация:
- Подсчет записей по разным условиям в одном запросе
- Вычисление сумм с фильтрацией
Преобразование данных:
- Нормализация значений
- Создание новых метрик
Важные моменты
- CASE WHEN рассматривает условия по порядку, первое совпадение выполняется
- ELSE необязателен, если не совпадают условия — результат NULL
- CASE WHEN работает в SELECT, WHERE, ORDER BY, HAVING
- Производительность: при множестве условий предпочитайте поисковую форму
CASE WHEN — мощный инструмент для трансформации данных прямо в SQL запросе, экономя время на обработке в приложении.
Похожие вопросы
- Расскажи про инструменты с которыми работаешь
- Расскажи о себе
- Что такое JOIN?
- Какие задачи решал с использованием Python?
- Какие приоритеты при выборе компании?
- С какими библиотеками работал в Python
- В каких ситуациях используешь SQL
- Что такое p-value и как его интерпретировать?
- Какие проверки выполняешь для данных?
- С какими проблемами сталкивался на работе
- В какой технической области хочешь развиваться
- Какие задачи решал на последнем месте работы?
- Что такое MAU, DAU и как их рассчитывать?
- Что такое Retention Rate и Churn Rate?
- Чем хотел бы заниматься?
- В чём важность очистки данных?
- Как работать с датами в SQL (DATE_TRUNC, EXTRACT, INTERVAL)?
- Больше опыта в SQL или Python
- С какими данными работал
- Какие ключевые показатели используют компании для анализа?