如何在MySQL中找到两个显式值的最大值?像MAXIMUM(1,@ foo)。
有一些组函数,如MAX,MIN,AVG等,它们将列名作为参数并使用结果集。是否可以将两个显式值转换为结果集并使用这些函数?其他一些方法?
P.S。:我需要一个存储过程的最大函数。
答案 0 :(得分:27)
如何在MySQL中找到两个显式值的最大值?像MAXIMUM(1,@ foo)。
使用GREATEST功能:
GREATEST(1, @foo)
...将返回较大的值 - 如果1大于@foo中的值,则得到1.否则,您将获得@foo中的任何值。此外,它是不聚合函数。
另一种方法是使用CASE声明:
CASE WHEN 1 > @foo THEN 1 ELSE @foo END
...因为CASE是ANSI标准 - 适用于Oracle,MySQL,SQL Server,Postgres ......
答案 1 :(得分:2)
您可以使用IF(1 > @foo,1,@foo)