Відповіді:
Використовуйте ВЕЛИКИЙ ()
Наприклад:
SELECT GREATEST(2,1);
Примітка. Кожен раз, якщо будь-яке одне значення містить null, то ця функція завжди повертає null (завдяки користувачеві @ sanghavi7)
GREATEST
підзапит як параметр для того, щоб я міг отримати значення для колонки в окрузі
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))
Щоб отримати максимальне значення стовпця через набір рядків:
SELECT MAX(column1) FROM table; -- expect one result
Щоб отримати максимальне значення набору стовпців, літералів або змінних для кожного рядка:
SELECT GREATEST(column1, 1, 0, @val) FROM table; -- expect many results
GREATEST
. Будь-яке значення нуля призведе до повернення функції 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))