Biểu thức CASE SQL
Biểu thức CASE SQL
Biểu thức CASE
xem xét các điều kiện và trả về một giá trị khi điều kiện đầu tiên được đáp ứng (như câu lệnh if-then-else). Vì vậy, khi điều kiện đúng, nó sẽ ngừng đọc và trả về kết quả. Nếu không có điều kiện nào đúng, nó sẽ trả về giá trị trong mệnh đề ELSE
.
Nếu không có phần ELSE
và không có điều kiện nào đúng thì nó trả về NULL.
Cú pháp TRƯỜNG HỢP
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
WHEN
conditionN THEN resultN
ELSE result
END;
Cơ sở dữ liệu demo
Dưới đây là lựa chọn từ bảng "OrderDetails" trong cơ sở dữ liệu mẫu Northwind:
OrderDetailID | OrderID | ProductID | Quantity |
---|---|---|---|
1 | 10248 | 11 | 12 |
2 | 10248 | 42 | 10 |
3 | 10248 | 72 | 5 |
4 | 10249 | 14 | 9 |
5 | 10249 | 51 | 40 |
Ví dụ về TRƯỜNG HỢP SQL
SQL sau đây xem xét các điều kiện và trả về một giá trị khi điều kiện đầu tiên được đáp ứng:
Ví dụ
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;
Hãy tự mình thử »SQL sau đây sẽ sắp xếp khách hàng theo Thành phố. Tuy nhiên, nếu Thành phố là NULL thì hãy sắp xếp theo Quốc gia:
Ví dụ
SELECT CustomerName, City, Country
FROM Customers
ORDER BY
(CASE
WHEN City IS NULL THEN Country
ELSE City
END);
Hãy tự mình thử »