W3School 在线教程

MySQL CASE 语句

MySQL 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

MySQL CASE 实例

以下 SQL 会根据条件进行判断,并在满足第一个条件时返回一个值:

实例

SELECT ProductName, Price,
CASE
 WHEN Price < 20 THEN 'Low Cost'
 WHEN Price BETWEEN 20 AND 50 THEN 'Medium Cost'
 ELSE 'High Cost'
END AS PriceCategory
FROM Products;

亲自试一试

以下 SQL 将根据 City 对客户进行排序。但是,如果 City 为 NULL,则会按 Country 进行排序:

实例

SELECT CustomerName, City, Country
FROM Customers
ORDER BY
(CASE
 WHEN City IS NULL THEN Country
 ELSE City
END);

亲自试一试

(追記) (追記ここまで)

AltStyle によって変換されたページ (->オリジナル) /