SQL CASE 语句

本章节讲解 SQL CASE 语句的用法。


SQL CASE 语句

CASE 语句遍历条件并在满足第一个条件时返回值(如 if-then-else 语句)。因此,一旦条件为真,它将停止读取并返回结果。如果没有条件为 true,则返回 ELSE 子句中的值。

如果没有 ELSE 部分同时没有条件是 True, 它返回 NULL.


CASE 语法

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

Demo 数据库

以下是从 Northwind 示例数据库的 "OrderDetails" 表中选择的内容:

OrderDetailIDOrderIDProductIDQuantity
1102481112
2102484210
310248725
410249149
5102495140

SQL CASE 实例

以下 SQL 遍历条件并在满足第一个条件时返回值:

实例
  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 AS QuantityText
  7. FROM OrderDetails;

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

实例
  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);