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


147

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

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

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

UPDATE my_table
SET my_column = my_column - 10;

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

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

Соответственно, вы можете создать объединенный набор данных, а затем, максимум, в sql-сервере хотя бы stackoverflow.com/questions/124417/…
Kzqai

Ответы:



17

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

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

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

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


10
Эта версия полезна, если вы ограничены стандартным SQL.
Дон Киркби
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.