如何在Postgresql中获得两个整数的最小值/最大值?

时间:2010-05-29 19:38:22

标签: postgresql

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

我将给出一个示例场景:

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

UPDATE my_table
SET my_column = my_column - 10;

但这可能会使一些价值观变为负面。我想要的(伪代码)是:

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

2 个答案:

答案 0 :(得分:238)

查看GREATEST and LEAST

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中不了解greatestleast。请改用它。