MySQL GREATEST()
hàm là một hàm so sánh trả về giá trị lớn nhất từ danh sách các giá trị.
Danh sách các giá trị được cung cấp dưới dạng nhiều đối số. Nói cách khác, GREATEST()
trả về đối số có giá trị lớn nhất từ danh sách các đối số.
Cú pháp
Cú pháp của GREATEST()
như sau:
GREATEST(value1,value2,...)
Mỗi đối số được phân tách bằng dấu phẩy. Hàm này so sánh tất cả và trả về giá trị lớn nhất.
Ví dụ 1 - So sánh các số
Nếu tất cả các đối số là số nguyên, chúng sẽ được so sánh dưới dạng số nguyên.
SELECT GREATEST(12, 120, 2400) AS 'Result';
Kết quả:
+--------+ | Result | +--------+ | 2400 | +--------+
Nếu ít nhất một đối số có độ chính xác kép, chúng được so sánh dưới dạng giá trị độ chính xác kép. Ngược lại, nếu ít nhất một đối số là DECIMAL
giá trị, chúng được so sánh dưới dạng DECIMAL
giá trị.
SELECT GREATEST(12.00, 120, 2400) AS 'Result';
Kết quả:
+---------+ | Result | +---------+ | 2400.00 | +---------+
Xem bên dưới để biết các quy tắc chính xác để xác định giá trị trả lại.
Ví dụ 2 - So sánh các chuỗi
Dưới đây là một ví dụ về so sánh các chuỗi.
SELECT GREATEST('a', 'b', 'c') AS 'Result';
Kết quả:
+--------+ | Result | +--------+ | c | +--------+
Đây là một cái khác:
SELECT GREATEST('Cat', 'Dogg', 'Rat') AS 'Result';
Kết quả:
+--------+ | Result | +--------+ | Rat | +--------+
Ví dụ 3 - Giá trị NULL
Nếu bất kỳ đối số nào là NULL
, kết quả là NULL
.
SELECT GREATEST('a', NULL, 'c') AS 'Result';
Kết quả:
+--------+ | Result | +--------+ | NULL | +--------+
Quy tắc so sánh
Các quy tắc nhất định được áp dụng khi xác định giá trị trả về sẽ là bao nhiêu. Các quy tắc này như sau:
- Nếu bất kỳ đối số nào là
NULL
, kết quả làNULL
. Không cần so sánh. - Nếu tất cả các đối số có giá trị số nguyên, chúng sẽ được so sánh dưới dạng số nguyên.
- Nếu ít nhất một đối số có độ chính xác kép, chúng được so sánh dưới dạng giá trị độ chính xác kép. Ngược lại, nếu ít nhất một đối số là
DECIMAL
giá trị, chúng được so sánh dưới dạngDECIMAL
giá trị. - Nếu các đối số bao gồm hỗn hợp số và chuỗi, chúng được so sánh dưới dạng số.
- Nếu bất kỳ đối số nào là một chuỗi không nhị phân (ký tự), các đối số sẽ được so sánh dưới dạng chuỗi không nhị phân.
- Trong tất cả các trường hợp khác, các đối số được so sánh dưới dạng chuỗi nhị phân.