2010-05-29 7 views
94

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

даст примерный сценарий:

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

UPDATE my_table 
SET my_column = my_column - 10; 

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

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

ответ

11

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

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

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

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

+7

Эта версия полезна, если вы ограничены стандартным SQL. –