Thí dụ
Trả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:
Chọn orderID, số lượng, trường hợp & nbsp; & nbsp; & nbsp; Khi số lượng> 30 thì "Số lượng lớn hơn 30" & nbsp; & nbsp; & nbsp; Khi số lượng = 30 thì "Số lượng là 30" & nbsp; & nbsp; & nbsp; Khác "Số lượng dưới 30" endFrom orderDetails;
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
FROM OrderDetails;
Hãy tự mình thử »
Định nghĩa và cách sử dụng
Tuyên bố trường hợp trả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 [như một câu lệnh if-then-else]. Vì vậy, một 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ó sẽ trả về giá trị trong mệnh đề khác.
Nếu không có phần khác và không có điều kiện nào là đúng, nó sẽ trả lại null.
Cú pháp
Trường hợp & nbsp; & nbsp; & nbsp; Khi điều kiện1 thì kết quả1 & nbsp; & nbsp; & nbsp; Khi điều kiện2 thì result2 & nbsp; & nbsp; & nbsp; Khi điều kiện sau đó kết quả & nbsp; & nbsp; & nbsp; Kết quả khác;
WHEN condition1 THEN
result1
WHEN condition2 THEN result2
WHEN conditionN THEN resultN
ELSE result
END;
Giá trị tham số
điều kiện1, điều kiện2, ... điều kiện | Yêu cầu. Điều kiện. Chúng được đánh giá theo thứ tự giống như chúng được liệt kê |
Kết quả1, kết quả2, ... kết quả | Yêu cầu. Giá trị để trả lại sau khi một điều kiện là đúng |
Chi tiết kỹ thuật
Từ MySQL 4.0 |
Nhiều ví dụ hơn
SQL sau đây sẽ đặt hàng khách hàng theo thành phố. Tuy nhiên, nếu City là NULL, thì hãy đặt hàng theo quốc gia:
Thí dụ
Chọn Tên tùy chỉnh, Thành phố, CountryFrom Khách hàng theo [Case & NBSP; & NBSP; & NBSP; Khi Thành phố là NULL sau đó là Quốc gia & NBSP; & NBSP; & NBSP; khác CityEnd];
FROM Customers
ORDER BY
[CASE
WHEN City IS NULL THEN Country
ELSE City
END];
Hãy tự mình thử »
Tuyên bố trường hợp MySQL
Câu lệnh CASE
trả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ư một câu lệnh if-then-else]. Vì vậy, một 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ó 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 là đúng, nó sẽ trả về null.
COLTAX TRƯỜNG HỢP
Trường hợp & nbsp; & nbsp; & nbsp; Khi điều kiện1 thì kết quả1 & nbsp; & nbsp; & nbsp; Khi điều kiện2 thì result2 & nbsp; & nbsp; & nbsp; Khi điều kiện sau đó kết quả & nbsp; & nbsp; & nbsp; Kết quả khác;
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à một lựa chọn từ bảng "OrderDetails" trong cơ sở dữ liệu mẫu Northwind:
1 | 10248 | 11 | 12 |
2 | 10248 | 42 | 10 |
3 | 10248 | 72 | 5 |
4 | 10249 | 14 | 9 |
5 | 10249 | 51 | 40 |
Ví dụ trường hợp MySQL
SQL sau đây trải qua các điều kiện và trả về giá trị khi đáp ứng điều kiện đầu tiên:
Thí dụ
Chọn orderID, số lượng, trường hợp & nbsp; & nbsp; & nbsp; Khi số lượng> 30 thì 'số lượng lớn hơn 30' & nbsp; & nbsp; & nbsp; Khi số lượng = 30 thì 'Số lượng là 30' & nbsp; & nbsp; & nbsp; Khác 'số lượng dưới 30'end dưới dạng số lượng orderdetails;
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ẽ đặt hàng khách hàng theo thành phố. Tuy nhiên, nếu City là NULL, thì hãy đặt hàng theo quốc gia:
Thí dụ
Chọn orderID, số lượng, trường hợp & nbsp; & nbsp; & nbsp; Khi số lượng> 30 thì 'số lượng lớn hơn 30' & nbsp; & nbsp; & nbsp; Khi số lượng = 30 thì 'Số lượng là 30' & nbsp; & nbsp; & nbsp; Khác 'số lượng dưới 30'end dưới dạng số lượng orderdetails;
FROM Customers
ORDER BY
[CASE
WHEN City IS NULL THEN Country
ELSE City
END];
Hãy tự mình thử »
Hướng dẫn MySQL này giải thích cách sử dụng câu lệnh if-then-else trong MySQL với cú pháp và ví dụ.IF-THEN-ELSE statement in MySQL with syntax and examples.
Sự mô tả
Trong MySQL, câu lệnh if-then-else được sử dụng để thực thi mã khi một điều kiện là đúng hoặc thực thi mã khác nhau nếu điều kiện đánh giá là sai.
Cú pháp
Cú pháp cho câu lệnh if-then-else trong MySQL là:
IF condition1 THEN {...statements to execute when condition1 is TRUE...} [ ELSEIF condition2 THEN {...statements to execute when condition1 is FALSE and condition2 is TRUE...} ] [ ELSE {...statements to execute when both condition1 and condition2 are FALSE...} ] END IF;Elseifoptional. Bạn sẽ sử dụng điều kiện khác khi bạn muốn thực thi một tập hợp các câu lệnh khi điều kiện thứ hai [IE: điều kiện2] là đúng.elSeoptional. Bạn sẽ sử dụng điều kiện khác khi bạn muốn thực thi một tập hợp các câu lệnh khi không có điều kiện nào khác được đánh giá là đúng.
Ghi chú
- Khi một điều kiện được tìm thấy là đúng, câu lệnh if-then-else sẽ thực thi mã tương ứng và không đánh giá các điều kiện nữa.
- Nếu không có điều kiện nào được đáp ứng, phần khác của câu lệnh if-then-else sẽ được thực thi.
- Điều quan trọng cần lưu ý là phần khác và các phần khác là tùy chọn.
Thí dụ
Sau đây là ví dụ sử dụng câu lệnh if-then-else trong hàm MySQL:
DELIMITER // CREATE FUNCTION IncomeLevel [ monthly_value INT ] RETURNS varchar[20] BEGIN DECLARE income_level varchar[20]; IF monthly_value 4000 AND monthly_value