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);