MySQL CASE 函数
实例
检查条件并在满足第一个条件时返回值:
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"ENDFROM OrderDetails;
定义与用法
CASE 语句遍历条件并在满足第一个条件时返回一个值(如 IF-THEN-ELSE 语句)。因此,一旦条件为 True,它将停止读取并返回结果。
如果没有条件为 True,它将返回 ELSE 子句中的值。
如果没有 ELSE 部分,并且没有条件为 True,则返回NULL。
语法
CASEWHEN condition1 THEN result1WHEN condition2 THEN result2WHEN conditionN THEN resultNELSE resultEND;
参数值
| 参数 | 描述 |
|---|---|
| condition1, condition2, … conditionN | 必填。条件。这些条件的评估顺序与列出的顺序相同 |
| result1, result2, … resultN | 必填。条件为 True 时要返回的值 |
技术细节
| Works in: | From MySQL 4.0 |
|---|
更多实例
以下 SQL 将按城市对客户进行排序。但是,如果 City 为空,则按国家排序:
实例
SELECT CustomerName, City, CountryFROM CustomersORDER BY(CASEWHEN City IS NULL THEN CountryELSE CityEND);