这个CASE
表达式遍历条件并在满足第一个条件时返回一个值(类似于 if-then-else 语句)。因此,一旦条件成立,它将停止读取并返回结果。如果没有条件成立,则返回ELSE
条款。
如果没有ELSE
部分且没有条件为真,则返回 NULL。
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 遍历条件并在满足第一个条件时返回一个值:
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 为 NULL,则按 Country 排序:
SELECT CustomerName, City, Country
FROM Customers
ORDER BY
(CASE
WHEN City IS NULL THEN Country
ELSE City
END);
亲自试一试 »
截取页面反馈部分,让我们更快修复内容!也可以直接跳过填写反馈内容!