如何在Postgres/SQL中找到两个整数的最大值(或最小值)?其中一个整数不是列值。

我将给出一个示例场景:

我想从一列中减去一个整数(在所有行中),但结果不应该小于零。首先,我有:

UPDATE my_table
SET my_column = my_column - 10;

但这会使一些值为负。我想要的(在伪代码)是:

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

你想要内联sql的情况:

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

Max()是一个聚合函数,它获取结果集中一行的最大值。

编辑:哦,不知道postgres中的最大值和最小值。那就用这个吧。


看看GREATEST和LEAST。

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