Answers:
GREATEST
以便可以获取cirtain列的值
select greatest(date1, ifnull(date2, "0000-00-00 00.00:00")) from table1 where date2 is null;
您将获得日期。
GREATEST(COALESCE(column1, 0), COALESCE(column2, 0))
要获得一组行中一列的最大值:
SELECT MAX(column1) FROM table; -- expect one result
要获取每一行的一组列,文字或变量的最大值:
SELECT GREATEST(column1, 1, 0, @val) FROM table; -- expect many results
GREATEST
。任何null值都将导致函数返回null。为防止这种情况,您可以做GREATEST(COALESCE(column1, 0), COALESCE(column2, 0))
您可以将GREATEST函数与不可为空的字段一起使用。如果其中一个值(或两个值)可以为NULL,则不要使用它(结果可以为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
您可以将NULL更改为首选默认值(如果两个值均为NULL)。
select COALESCE(GREATEST(fieldA, fieldB),fieldA,fieldB) as maxValue
。它过于复杂
GREATEST(COALESCE(column1, 0), COALESCE(column2, 0))