2009-12-17 47 views
8

如何在MySQL中查找兩個顯式值的最大值?像MAXIMUM(1,@foo)。MySQL中的簡單數學運算max功能

有MAX,MIN,AVG等組函數,它們將列名作爲參數並使用結果集。是否有可能將兩個顯式值轉換爲結果集並使用這些函數?其他一些方法?

P.S .:我需要一個最大函數來存儲我的一個存儲過程。

回答

24

如何找到在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服務器,Postgres的工作...

+0

對面是[link](https://dev.mysql.com/doc/refman/5.7/en/comparison-operators.html#function_least)LEAST – Andrei 2017-06-06 07:47:50

2

您可以使用IF(1 > @foo,1,@foo)