Что такое case function?
CASE в SQL — это конструкция, которая работает как условный оператор (аналог if-else). Она позволяет возвращать разные значения в зависимости от условия.
Виды CASE
CASE1️⃣ Простой CASE
Сравнивает выражение с набором значений.
SELECT name,
CASE department_id
WHEN 1 THEN 'HR'
WHEN 2 THEN 'Finance'
WHEN 3 THEN 'IT'
ELSE 'Other'
END AS department_name
FROM employees;Здесь department_id проверяется на равенство 1, 2, 3.
2️⃣ Поисковый CASE
Позволяет задавать произвольные логические условия (WHEN ... THEN).
SELECT name, salary,
CASE
WHEN salary < 3000 THEN 'Low'
WHEN salary BETWEEN 3000 AND 7000 THEN 'Medium'
ELSE 'High'
END AS salary_level
FROM employees;Здесь сравнение идёт по диапазонам.
Особенности
CASEвсегда возвращает одно значение.Можно использовать в
SELECT,WHERE,ORDER BY,GROUP BY.Работает до первого совпавшего условия (
WHEN).Если ни одно условие не выполнено и нет
ELSE, результат будетNULL.
Пример для QA-задач
Хочешь проверить корректность бизнес-логики:
SELECT order_id,
CASE
WHEN status = 'P' THEN 'Pending'
WHEN status = 'C' THEN 'Completed'
WHEN status = 'X' THEN 'Cancelled'
ELSE 'Unknown'
END AS status_text
FROM orders;Last updated
Was this helpful?