Đăng nhập
Bạn chưa có tài khoản? Đăng ký.
Bạn đã quên password?
Câu lệnh CASE
đi qua các điều kiện và trả về một giá trị khi điều kiện đầu tiên được đáp ứng (giống như câu lệnh if-then-else). Vì vậy, khi một điều kiện là đúng, nó sẽ ngừng đọc và trả về kết quả. Nếu không có điều kiện nào là đúng, nó 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 là đúng, nó trả về giá trị NULL.
Cú pháp CASE
CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 WHEN conditionN THEN resultN ELSE result END;
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 |
Câu lệnh SQL sau đi qua 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;
Câu lệnh SQL sau sẽ sắp xếp các khách hàng theo Thành phố. Tuy nhiên, nếu Thành phố là NULL, thì hãy đặt hàng theo Quốc gia.
Ví dụ
SELECT CustomerName, City, Country FROM Customers ORDER BY (CASE WHEN City IS NULL THEN Country ELSE City END);