Оператор CASE в SQL позволяет выполнять условные логические операции непосредственно в запросах. Это аналог конструкции if-else в языках программирования и полезен для создания вычисляемых столбцов и реализации сложной логики выборки данных.
Два варианта синтаксиса:
🍩Простой CASE
Используется для сравнения выражения с набором значений.
CASE выражение
WHEN значение1 THEN результат1
WHEN значение2 THEN результат2
ELSE результат_по_умолчанию
END
🍩CASE с условиями
Используется для проверки условий.
CASE
WHEN условие1 THEN результат1
WHEN условие2 THEN результат2
ELSE результат_по_умолчанию
END
Примеры использования: 👇
SELECT
product_name,
CASE category_id
WHEN 1 THEN 'Электроника'
WHEN 2 THEN 'Одежда'
WHEN 3 THEN 'Книги'
ELSE 'Другое'
END AS category_name
FROM products;
SELECT
employee_name,
salary,
CASE
WHEN salary >= 100000 THEN ' Высокий доход'
WHEN salary >= 50000 THEN 'Средний доход'
ELSE 'Низкий доход'
END AS income_level
FROM employees;
Важные замечания:
🟡Первое совпадение: Оператор CASE возвращает результат при первом совпавшем условии и игнорирует остальные.
🟡ELSE и NULL: Если ни одно из условий не выполнено и не указан блок ELSE, то возвращается NULL.
🟡Типы данных: Все возвращаемые значения в THEN и ELSE должны быть совместимых типов данных.
👉 @SQLPortal