Risposte:
Usa GREATEST ()
Per esempio:
SELECT GREATEST(2,1);
Nota: ogni volta che un singolo valore contiene null in quel momento, questa funzione restituisce sempre null (Grazie a user @ sanghavi7)
LEAST
GREATEST
poter ottenere valori per una colonna cirtain
select greatest(date1, ifnull(date2, "0000-00-00 00.00:00")) from table1 where date2 is null;
ti verrà data1.
GREATEST(COALESCE(column1, 0), COALESCE(column2, 0))
Per ottenere il valore massimo di una colonna in un set di righe:
SELECT MAX(column1) FROM table; -- expect one result
Per ottenere il valore massimo di un set di colonne, valori letterali o variabili per ogni riga:
SELECT GREATEST(column1, 1, 0, @val) FROM table; -- expect many results
GREATEST
. Qualsiasi valore null farà sì che la funzione restituisca null. Per evitarlo, puoi farloGREATEST(COALESCE(column1, 0), COALESCE(column2, 0))
È possibile utilizzare la funzione MAGGIORE con campi non annullabili. Se uno di questi valori (o entrambi) può essere NULL, non utilizzarlo (il risultato può essere NULL).
select
if(
fieldA is NULL,
if(fieldB is NULL, NULL, fieldB), /* second NULL is default value */
if(fieldB is NULL, field A, GREATEST(fieldA, fieldB))
) as maxValue
È possibile modificare NULL sul valore predefinito preferito (se entrambi i valori sono NULL).
select COALESCE(GREATEST(fieldA, fieldB),fieldA,fieldB) as maxValue
. È complicato
GREATEST(COALESCE(column1, 0), COALESCE(column2, 0))