SQL CASE
CASE
Инструкция CASE проходит через условия и возвращает значение, когда выполняется первое условие (например, инструкция IF-THEN-ELSE). Таким образом , как только условие истинно, оно прекратит чтение и вернет результат. Если никакие условия не являются истинными, он возвращает значение в предложении ELSE.
Если нет никакой другой части и никакие условия не истинны, он возвращает NULL.
Синтаксис CASE
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
WHEN
conditionN THEN resultN
ELSE result
END;
Демо база данных
Ниже приведен выбор из таблицы "OrderDetails" в образце базы данных Northwind:
OrderDetailID | OrderID | ProductID | Quantity |
---|---|---|---|
1 | 10248 | 11 | 12 |
2 | 10248 | 42 | 10 |
3 | 10248 | 72 | 5 |
4 | 10249 | 14 | 9 |
5 | 10249 | 51 | 40 |
Примеры SQL CASE
Следующий SQL проходит через условия и возвращает значение при выполнении первого условия:
Пример
SELECT OrderID, Quantity,
CASE
WHEN Quantity > 30
THEN "Количество больше чем 30"
WHEN Quantity =
30 THEN "Количество составляет 30"
ELSE "Количество до 30"
END AS QuantityText
FROM OrderDetails;
Попробуйте сами »
Следующий SQL будет заказывать клиентов по городам. Однако, если город равен нулю, тогда порядок по странам:
Пример
SELECT CustomerName, City, Country
FROM Customers
ORDER BY
(CASE
WHEN City IS NULL THEN Country
ELSE City
END);
Попробуйте сами »