MySQL中的简单数学最大函数

Ale*_*lex 13 mysql sql math stored-procedures

如何在MySQL中找到两个显式值的最大值?像MAXIMUM(1,@ foo)之类的东西.

有一些组函数,如MAX,MIN,AVG等,它们将列名作为参数并使用结果集.是否可以将两个显式值转换为结果集并使用这些函数?还有其他方法吗?

PS:我的一个存储过程需要一个max函数.

OMG*_*ies 29

如何在MySQL中找到两个显式值的最大值?像MAXIMUM(1,@ foo)之类的东西.

使用GREATEST功能:

GREATEST(1, @foo)
Run Code Online (Sandbox Code Playgroud)

...将返回更大的值 - 如果1大于@foo中的值,您将获得1.否则,您将获得@foo中的任何值.此外,它不是一个聚合函数.

另一种方法是使用CASE声明:

CASE WHEN 1 > @foo THEN 1 ELSE @foo END
Run Code Online (Sandbox Code Playgroud)

...因为CASE是ANSI标准 - 适用于Oracle,MySQL,SQL Server,Postgres ......

  • 相反是[link](https://dev.mysql.com/doc/refman/5.7/en/comparison-operators.html#function_least)至少 (2认同)