Respuestas:
Utilice GREATEST ()
P.ej:
SELECT GREATEST(2,1);
Nota: Siempre que si algún valor individual contiene nulo en ese momento, esta función siempre devuelve nulo (Gracias al usuario @ sanghavi7)
GREATEST
poder obtener valores para una columna determinada?
select greatest(date1, ifnull(date2, "0000-00-00 00.00:00")) from table1 where date2 is null;
, conseguirá tu cita 1.
GREATEST(COALESCE(column1, 0), COALESCE(column2, 0))
Para obtener el valor máximo de una columna en un conjunto de filas:
SELECT MAX(column1) FROM table; -- expect one result
Para obtener el valor máximo de un conjunto de columnas, literales o variables para cada fila:
SELECT GREATEST(column1, 1, 0, @val) FROM table; -- expect many results
GREATEST
. Cualquier valor nulo hará que la función devuelva nulo. Para evitar esto, puedes hacerloGREATEST(COALESCE(column1, 0), COALESCE(column2, 0))
Puede usar la función MAYOR con campos no anulables. Si uno de estos valores (o ambos) puede ser NULL, no lo use (el resultado puede ser 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
Puede cambiar NULL a su valor predeterminado preferido (si ambos valores son NULL).
select COALESCE(GREATEST(fieldA, fieldB),fieldA,fieldB) as maxValue
. Es
GREATEST(COALESCE(column1, 0), COALESCE(column2, 0))