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


147

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

我将给出一个示例方案:

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

UPDATE my_table
SET my_column = my_column - 10;

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

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

与此相关的,你可以创建一个联合数据集,然后最大的是,在SQL服务器至少stackoverflow.com/questions/124417/...
Kzqai

Answers:



17

您需要内联sql case

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

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

编辑:哎呀,不知道greatestleast在postgres中。改用它。


10
如果限于标准SQL,则此版本很有用。
Don Kirkby 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.