Respostas:
Use GREATEST ()
Por exemplo:
SELECT GREATEST(2,1);
Nota: Sempre que qualquer valor único contiver nulo nesse momento, essa função sempre retornará nulo (Graças ao usuário @ sanghavi7)
GREATEST
para que eu possa obter valores para uma coluna Cirtain
select greatest(date1, ifnull(date2, "0000-00-00 00.00:00")) from table1 where date2 is null;
, você terá date1.
GREATEST(COALESCE(column1, 0), COALESCE(column2, 0))
Para obter o valor máximo de uma coluna em um conjunto de linhas:
SELECT MAX(column1) FROM table; -- expect one result
Para obter o valor máximo de um conjunto de colunas, literais ou variáveis para cada linha:
SELECT GREATEST(column1, 1, 0, @val) FROM table; -- expect many results
GREATEST
. Qualquer valor nulo fará com que a função retorne nulo. Para evitar isso, você pode fazerGREATEST(COALESCE(column1, 0), COALESCE(column2, 0))
Você pode usar a função MAIOR com campos não anuláveis. Se um desses valores (ou ambos) puder ser NULL, não use-o (o resultado pode 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
Você pode alterar NULL para o seu valor padrão preferido (se os dois valores forem NULL).
select COALESCE(GREATEST(fieldA, fieldB),fieldA,fieldB) as maxValue
. É complicado
GREATEST(COALESCE(column1, 0), COALESCE(column2, 0))