MySQL CASE 語句
MySQL 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;
演示資料庫
Below is a selection from the "OrderDetails" table in the Northwind sample database (以下是 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 |
MySQL CASE 示例
以下 SQL 語句會逐個條件檢查,並在第一個條件滿足時返回值
示例
SELECT OrderID, Quantity,
CASE
WHEN Quantity > 30 THEN '數量大於 30'
WHEN Quantity = 30 THEN '數量等於 30'
ELSE '數量小於 30'
END AS QuantityText
FROM OrderDetails;
自己動手試一試 »
以下 SQL 語句將按城市對客戶進行排序。但是,如果城市為 NULL,則按國家排序
示例
SELECT CustomerName, City, Country
FROM Customers
ORDER BY
(CASE
WHEN City IS NULL THEN Country
ELSE City
END);
自己動手試一試 »