如何在Postgres / SQL中找到两个整数的最大值(或最小值)?其中一个整数不是列值。
我将给出一个示例场景:
我想从列中减去一个整数(在所有行中),但结果不应小于零。所以,首先,我有:
UPDATE my_table
SET my_column = my_column - 10;
但这可能会使一些价值观变为负面。我想要的(伪代码)是:
UPDATE my_table
SET my_column = MAXIMUM(my_column - 10, 0);
答案 0 :(得分:238)
UPDATE my_table
SET my_column = GREATEST(my_column - 10, 0);
答案 1 :(得分:13)
您需要内联sql case
:
set my_column = case when my_column - 10 > 0 then my_column - 10 else 0 end
max()
是一个聚合函数,它获取结果集中一行的最大值。
编辑:oops,在postgres中不了解greatest
和least
。请改用它。