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 ......