满足条件并在满足第一个条件时返回值:
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;
CASE语句通过条件并在满足第一个条件时返回值(如IF-THEN-ELSE语句)。因此,一旦条件为真,它将停止查询并返回结果。
如果没有条件成立,它将返回ELSE子句中的值。
如果没有ELSE部分且没有条件为真,则返回NULL。
CASE WHEN THEN WHEN THEN WHEN THEN ELSE END;
参数 | 描述 |
---|---|
condition1, condition2, ...conditionN | 需要。条件。将按照列出的顺序对它们进行评估 |
result1, result2, ...resultN | 需要。条件为真时返回的值 |
适用于: | 从MySQL 4.0 |
---|
下面的SQL将按城市为客户排序。但是,如果城市为NULL,则按国家排序::
SELECT CustomerName, City, Country FROM Customers ORDER BY (CASE WHEN City IS NULL THEN Country ELSE City END);