目录

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 案例示例

以下 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);
亲自试一试 »