MySQL CASE 函数

实例

检查条件并在满足第一个条件时返回值:

  1. SELECT OrderID, Quantity,
  2. CASE
  3. WHEN Quantity > 30 THEN "The quantity is greater than 30"
  4. WHEN Quantity = 30 THEN "The quantity is 30"
  5. ELSE "The quantity is under 30"
  6. END
  7. FROM OrderDetails;

定义与用法

CASE 语句遍历条件并在满足第一个条件时返回一个值(如 IF-THEN-ELSE 语句)。因此,一旦条件为 True,它将停止读取并返回结果。

如果没有条件为 True,它将返回 ELSE 子句中的值。

如果没有 ELSE 部分,并且没有条件为 True,则返回NULL


语法

  1. CASE
  2. WHEN condition1 THEN result1
  3. WHEN condition2 THEN result2
  4. WHEN conditionN THEN resultN
  5. ELSE result
  6. END;

参数值

参数描述
condition1, condition2, … conditionN必填。条件。这些条件的评估顺序与列出的顺序相同
result1, result2, … resultN必填。条件为 True 时要返回的值

技术细节

Works in:From MySQL 4.0

更多实例

以下 SQL 将按城市对客户进行排序。但是,如果 City 为空,则按国家排序:

实例
  1. SELECT CustomerName, City, Country
  2. FROM Customers
  3. ORDER BY
  4. (CASE
  5. WHEN City IS NULL THEN Country
  6. ELSE City
  7. END);

分类导航