2009-12-17 32 views
8

Làm cách nào để tìm tối đa hai giá trị rõ ràng trong MySQL? Một cái gì đó như MAXIMUM (1, @foo).Chức năng toán học tối đa đơn giản trong MySQL

Có các hàm nhóm như MAX, MIN, AVG, v.v ... lấy tên cột làm đối số và làm việc với bộ kết quả. Có thể chuyển đổi hai giá trị rõ ràng thành tập kết quả và sử dụng các hàm đó không? Một số cách khác?

P .: Tôi cần hàm tối đa cho một trong các thủ tục được lưu trữ của tôi.

Trả lời

24

Làm thế nào để tìm ra tối đa trong hai giá trị rõ ràng trong MySQL? Một cái gì đó như MAXIMUM (1, @foo).

Sử dụng GREATEST chức năng:

GREATEST(1, @foo) 

... sẽ trở lại bất cứ giá trị lớn - nếu 1 là lớn hơn giá trị trong @foo, bạn sẽ nhận được 1. Nếu không, bạn sẽ nhận được bất kỳ giá trị nào trong @foo. Ngoài ra, nó là không một hàm tổng hợp.

Việc thay thế sẽ được sử dụng một lệnh CASE:

CASE WHEN 1 > @foo THEN 1 ELSE @foo END 

... vì CASE là tiêu chuẩn ANSI - sẽ làm việc trên Oracle, MySQL, SQL Server, Postgres ...

+0

Đối diện là [link] (https://dev.mysql.com/doc/refman/5.7/en/comparison-operators.html#function_least) LEAST – Andrei

2

Bạn có thể sử dụng IF(1 > @foo,1,@foo)

Các vấn đề liên quan