SQL CASE 语句
SQL CASE语句
CASE语句通过条件并在满足第一个条件时返回一个值(如IF-THEN-ELSE语句)。因此,一旦条件成立,它将停止读取并返回结果。如果没有条件,则返回ELSE子句中的值。
如果没有ELSE部分且没有条件为真,则返回NULL。
CASE 语法
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
WHEN conditionN THEN resultN
ELSE result
END;
演示数据库
以下是Northwind示例数据库中“OrderDetails”表的选择:
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 "The quantity is greater than 30"
WHEN Quantity = 30 THEN "The quantity is 30"
ELSE "The quantity is under 30"
END AS QuantityText
FROM OrderDetails;
运行实例»
以下SQL将按City订购客户排序。如果City为NULL,则按Country排序:
实例
SELECT CustomerName, City, Country
FROM Customers
ORDER BY
(CASE
WHEN City IS NULL THEN Country
ELSE City
END);
运行实例»