2009-12-17 8 views
8

Come trovare il massimo di due valori espliciti in MySQL? Qualcosa come MAXIMUM (1, @foo).Funzione Math matematica semplice in MySQL

ci sono funzioni di gruppo come MAX, MIN, AVG, ecc che prendono nome di colonna come un argomento e lavorano con i set di risultati. È possibile convertire due valori espliciti in un set di risultati e utilizzare quelle funzioni? Alcuni altri modi?

P.S .: Ho bisogno di una funzione massima per una delle mie stored procedure.

risposta

24

Come trovare il massimo di due valori espliciti in MySQL? Qualcosa come MAXIMUM (1, @foo).

utilizzare la funzione GREATEST:

GREATEST(1, @foo) 

... tornerà a seconda di quale valore è maggiore - se 1 è più grande del valore in @pippo, si otterrà 1. In caso contrario, ti ottieni qualsiasi valore in @foo. Inoltre, è non una funzione di aggregazione.

L'alternativa sarebbe quella di utilizzare un'istruzione CASE:

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

... perché CASE è standard ANSI - che funziona su Oracle, MySQL, SQL Server, Postgres ...

+0

Di fronte si trova [link] (https://dev.mysql.com/doc/refman/5.7/en/comparison-operators.html#function_least) MENO – Andrei

2

È possibile utilizzare IF(1 > @foo,1,@foo)