Оператор CASE в SQL
НАВИГАЦИЯ ПО СТРАНИЦЕ
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE default_result
END
SELECT
FirstName,
LastName,
Salary,
CASE
WHEN Salary > 50000 THEN 'High Salary'
WHEN Salary > 30000 THEN 'Medium Salary'
ELSE 'Low Salary'
END AS SalaryCategory
FROM
Employees;
В данном примере создается новая колонка SalaryCategory, которая зависит от значения столбца Salary. Если зарплата больше 50000, присваивается категория "High Salary", если больше 30000 - "Medium Salary", в противном случае - "Low Salary".
Оператор CASE может быть также использован в более сложных сценариях, например, для сравнения с несколькими значениями или для выполнения арифметических операций. Вот пример с несколькими значениями:
SELECT
ProductID,
Quantity,
CASE
WHEN Quantity = 0 THEN 'Out of Stock'
WHEN Quantity > 0 AND Quantity <= 10 THEN 'Low Stock'
WHEN Quantity > 10 AND Quantity <= 50 THEN 'Medium Stock'
ELSE 'High Stock'
END AS StockStatus
FROM
Products;
В этом примере создается колонка StockStatus на основе значения колонки Quantity. В зависимости от значения количества товара определяется статус запаса.
Оператор CASE
предоставляет удобный способ внедрения условной логики в SQL-запросы и является мощным инструментом для создания разнообразных условий выбора.