Eu tentei, mas falhei:
mysql> select max(1,0);
ERRO 1064 (42000): você tem um erro na sua sintaxe SQL; verifique o manual que corresponde à sua versão do servidor MySQL para a sintaxe correta a ser usada próximo a '0)' na linha 1
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)
LEAST
GREATEST
para que eu possa obter valores para uma coluna Cirtainselect 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:
Para obter o valor máximo de um conjunto de colunas, literais ou variáveis para cada linha:
fonte
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).
Você pode alterar NULL para o seu valor padrão preferido (se os dois valores forem NULL).
fonte
select COALESCE(GREATEST(fieldA, fieldB),fieldA,fieldB) as maxValue
. É complicadoGREATEST(COALESCE(column1, 0), COALESCE(column2, 0))