MySQL CASE 函数
定义和用法
CASE 语句会遍历条件,当满足第一个条件时返回值(类似于 IF-THEN-ELSE 语句)。因此,一旦某个条件为真,它将停止读取并返回结果。
如果没有任何条件为真,它将返回 ELSE 子句中的值。
如果没有 ELSE 部分且没有任何条件为真,它将返回 NULL。
实例
例子 1
遍历条件,当满足第一个条件时返回值:
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
FROM OrderDetails;
以下 SQL 将按城市对客户进行排序。但是,如果 City 为 NULL,则按 Country 排序:
例子 2
SELECT CustomerName, City, Country
FROM Customers
ORDER BY
(CASE
WHEN City IS NULL THEN Country
ELSE City
END);
语法
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
WHEN conditionN THEN resultN
ELSE result
END;
参数
| 参数 | 描述 |
|---|---|
| condition1, condition2, ...conditionN | 必需。条件。这些条件将按照列出的顺序进行评估。 |
| result1, result2, ...resultN | 必需。一旦某个条件为真,将返回此值。 |
技术细节
| 适用于: | 从 MySQL 4.0 开始。 |
|---|