Как получить min/max двух целых чисел в Postgres/SQL?

Как найти максимум (или минимум) двух целых чисел в Postgres/SQL? Одно из целых чисел не является значением столбца.

Я приведу примерный сценарий:

Я хотел бы вычесть целое число из столбца (во всех строках), но результат не должен быть меньше нуля. Итак, для начала, у меня есть:

UPDATE my_table
SET my_column = my_column - 10;

Но это может сделать некоторые из значений отрицательными. Я бы хотел (в псевдокоде):

UPDATE my_table
SET my_column = MAXIMUM(my_column - 10, 0);

Ответ 2

Вы хотите встроенный sql case:

set my_column = case when my_column - 10 > 0 then my_column - 10 else 0 end

max() является агрегированной функцией и получает максимум строки результирующего набора.

Изменить: oops, не знал о greatest и least в postgres. Используйте это вместо.