Объясняется с примерами
Проще говоря, оператор CASE WHEN
оценивает заданные условия и возвращает результаты на основе этой оценки.
Мы можем использовать его для получения новых столбцов из существующих. Но есть и другие случаи, когда CASE WHEN
пригодится для решения сложных задач.
Что мы узнаем из этой статьи:
- Используйте
CASE WHEN
для получения новых столбцов - Используйте
CASE WHEN
вGROUP BY
- Используйте
CASE WHEN
при расчете агрегаций на основе производных категорий.
Мы будем запрашивать таблицу product_inventory
, которую я создал с фиктивными данными. Вот первые пять строк этой таблицы:
1. Используйте случай, когда нужно получить новые столбцы
Оператор CASE WHEN
(или CASE
) позволяет оценивать условия, результаты которых можно использовать для создания новых столбцов.
Например, мы можем создать новый столбец price_group
со значениями низкий, средний, высокий на основе цен на продукты. Это можно рассматривать как создание ценовых групп товаров.
SELECT product_description, price, CASE WHEN price > 20 THEN 'high' WHEN price <= 20 AND price > 10 THEN 'medium' WHEN price <= 10 THEN 'low' END AS price_group FROM product_inventory
Оператор CASE WHEN
создает product_column
на основе следующих критериев:
- Если цена выше 20, значение «высокое».
- Если цена находится между 10 и 20, значение является «средним».
- Если цена меньше 10, значение «низкое».
Мы также можем написать этот запрос следующим образом:
SELECT product_description, price, CASE WHEN price > 20 THEN 'high' WHEN…