Câu trả lời:
Sử dụng TUYỆT VỜI ()
Ví dụ:
SELECT GREATEST(2,1);
Lưu ý: Bất cứ khi nào nếu bất kỳ giá trị đơn lẻ nào chứa null tại thời điểm đó, hàm này luôn trả về null (Cảm ơn người dùng @ sanghavi7)
GREATEST
tôi có thể nhận các giá trị cho cột cirtain
select greatest(date1, ifnull(date2, "0000-00-00 00.00:00")) from table1 where date2 is null;
sẽ giúp bạn ngày1.
GREATEST(COALESCE(column1, 0), COALESCE(column2, 0))
Để có được giá trị tối đa của một cột trên một tập hợp các hàng:
SELECT MAX(column1) FROM table; -- expect one result
Để nhận giá trị tối đa của một tập hợp các cột, bằng chữ hoặc biến cho mỗi hàng:
SELECT GREATEST(column1, 1, 0, @val) FROM table; -- expect many results
GREATEST
. Bất kỳ giá trị null nào cũng sẽ khiến hàm trả về null. Để ngăn chặn điều này, bạn có thể làmGREATEST(COALESCE(column1, 0), COALESCE(column2, 0))
Bạn có thể sử dụng hàm TUYỆT VỜI với các trường không null. Nếu một trong những giá trị này (hoặc cả hai) có thể là NULL, đừng sử dụng nó (kết quả có thể là NULL).
select
if(
fieldA is NULL,
if(fieldB is NULL, NULL, fieldB), /* second NULL is default value */
if(fieldB is NULL, field A, GREATEST(fieldA, fieldB))
) as maxValue
Bạn có thể thay đổi NULL thành giá trị mặc định ưa thích của bạn (nếu cả hai giá trị là NULL).
select COALESCE(GREATEST(fieldA, fieldB),fieldA,fieldB) as maxValue
. Nó quá phức tạp
GREATEST(COALESCE(column1, 0), COALESCE(column2, 0))