SQL CASE 语句
本章节讲解 SQL CASE 语句的用法。
SQL CASE 语句
CASE 语句遍历条件并在满足第一个条件时返回值(如 if-then-else 语句)。因此,一旦条件为真,它将停止读取并返回结果。如果没有条件为 true,则返回 ELSE 子句中的值。
如果没有 ELSE 部分同时没有条件是 True, 它返回 NULL.
CASE 语法
CASEWHEN condition1 THEN result1WHEN condition2 THEN result2WHEN conditionN THEN resultNELSE resultEND;
Demo 数据库
以下是从 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 |
SQL CASE 实例
以下 SQL 遍历条件并在满足第一个条件时返回值:
实例
SELECT OrderID, Quantity,CASEWHEN Quantity > 30 THEN 'The quantity is greater than 30'WHEN Quantity = 30 THEN 'The quantity is 30'ELSE 'The quantity is under 30'END AS QuantityTextFROM OrderDetails;
以下 SQL 将按城市对客户进行排序。但是,如果城市为空,则按国家排序:
实例
SELECT CustomerName, City, CountryFROM CustomersORDER BY(CASEWHEN City IS NULL THEN CountryELSE CityEND);