如何在Postgres/SQL中找到两个整数的最大值(或最小值)?其中一个整数不是列值。
我将给出一个示例场景:
我想从一列中减去一个整数(在所有行中),但结果不应该小于零。首先,我有:
UPDATE my_table
SET my_column = my_column - 10;
但这会使一些值为负。我想要的(在伪代码)是:
UPDATE my_table
SET my_column = MAXIMUM(my_column - 10, 0);
如何在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);
你想要内联sql的情况:
set my_column = case when my_column - 10 > 0 then my_column - 10 else 0 end
Max()是一个聚合函数,它获取结果集中一行的最大值。
编辑:哦,不知道postgres中的最大值和最小值。那就用这个吧。