2009-12-17 5 views
8

Comment trouver le maximum de deux valeurs explicites dans MySQL? Quelque chose comme MAXIMUM (1, @foo).Fonction mathématique simple max dans MySQL

Il existe des fonctions de groupe telles que MAX, MIN, AVG, etc. qui prennent le nom de la colonne comme argument et fonctionnent avec les ensembles de résultats. Est-il possible de convertir deux valeurs explicites en un ensemble de résultats et d'utiliser ces fonctions? D'autres façons?

P.S .: J'ai besoin d'une fonction max pour l'une de mes procédures stockées.

Répondre

24

Comment trouver le maximum de deux valeurs explicites dans MySQL? Quelque chose comme MAXIMUM (1, @foo).

Utilisez la fonction GREATEST:

GREATEST(1, @foo) 

... retournera selon la valeur est plus grande - si 1 est supérieure à la valeur @foo, vous obtiendrez 1. Sinon, vous obtenir la valeur de @foo En outre, c'est pas une fonction d'agrégat.

L'alternative serait d'utiliser une instruction CASE:

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

... parce que CASE est la norme ANSI - qui fonctionne sur Oracle, MySQL, SQL Server, Postgres ...

+0

face est [link] (https://dev.mysql.com/doc/refman/5.7/fr/comparison-operators.html#function_least) MOINS – Andrei

2

Vous pouvez utiliser IF(1 > @foo,1,@foo)

Questions connexes