轻松上手,快乐学习!

SQL CASE 语句


SQL CASE语句

CASE语句通过条件并在满足第一个条件时返回一个值(如IF-THEN-ELSE语句)。因此,一旦条件成立,它将停止读取并返回结果。如果没有条件,则返回ELSE子句中的值。

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

CASE 语法

CASE
    WHEN condition1 THEN result1
    WHEN condition2 THEN result2
    WHEN conditionN THEN resultN
    ELSE result
END;

演示数据库

以下是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,
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 AS QuantityText
FROM OrderDetails;

运行实例»

以下SQL将按City订购客户排序。如果City为NULL,则按Country排序:

实例

SELECT CustomerName, City, Country
FROM Customers
ORDER BY
(CASE
    WHEN City IS NULL THEN Country
    ELSE City
END);

运行实例»