Я пытался, но не получилось:
mysql> select max(1,0);
ОШИБКА 1064 (42000): у вас ошибка в синтаксисе SQL; проверить руководство что соответствует вашей версии сервера MySQL для правильного использования синтаксиса около '0)' в строке 1
Используйте БОЛЬШОЙ ()
Например:
SELECT GREATEST(2,1);
Примечание: всякий раз, когда какое-либо одно значение содержит ноль в то время, эта функция всегда возвращает ноль (спасибо user @ sanghavi7)
LEAST
GREATEST
так что я могу получить значения для cirtain колонкиselect greatest(date1, ifnull(date2, "0000-00-00 00.00:00")) from table1 where date2 is null;
вы получите дату1.GREATEST(COALESCE(column1, 0), COALESCE(column2, 0))
Чтобы получить максимальное значение столбца в наборе строк:
Чтобы получить максимальное значение набора столбцов, литералов или переменных для каждой строки:
источник
GREATEST
. Любое нулевое значение приведет к тому, что функция вернет нулевое значение. Чтобы предотвратить это, вы можете сделатьGREATEST(COALESCE(column1, 0), COALESCE(column2, 0))
Вы можете использовать функцию GREATEST с необнуляемыми полями. Если одно из этих значений (или оба) может быть NULL, не используйте его (результат может быть NULL).
Вы можете изменить NULL на ваше предпочтительное значение по умолчанию (если оба значения NULL).
источник
select COALESCE(GREATEST(fieldA, fieldB),fieldA,fieldB) as maxValue
. Это слишком сложноGREATEST(COALESCE(column1, 0), COALESCE(column2, 0))