2009-12-17 20 views
8

¿Cómo encontrar el máximo de dos valores explícitos en MySQL? Algo como MAXIMO (1, @foo).Función matemática simple máxima en MySQL

Existen funciones de grupo como MAX, MIN, AVG, etc. que toman el nombre de la columna como argumento y funcionan con conjuntos de resultados. ¿Es posible convertir dos valores explícitos a un conjunto de resultados y usar esas funciones? ¿Algunas otras formas?

P.S .: Necesito una función máxima para uno de mis procedimientos almacenados.

Respuesta

24

¿Cómo encontrar el máximo de dos valores explícitos en MySQL? Algo como MAXIMO (1, @foo).

utilizar la función GREATEST:

GREATEST(1, @foo) 

... devolverá lo que el valor es más grande - si 1 es mayor que el valor en @foo, obtendrá 1. De lo contrario, obtener el valor que sea en @foo. Además, es no una función agregada.

La alternativa sería utilizar una instrucción CASE:

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

... porque el caso es estándar ANSI - que funcionará en Oracle, MySQL, SQL Server, PostgreSQL ...

+0

Enfrente se encuentra [enlace] (https://dev.mysql.com/doc/refman/5.7/en/comparison-operators.html#function_least) LEAST – Andrei

2

Puede utilizar IF(1 > @foo,1,@foo)

Cuestiones relacionadas