Postgres NULLIF大于x

时间:2014-01-30 09:08:42

标签: sql postgresql

我正在编写一个查询来聚合一些数据,在我的select语句中我想写这个:

select coalesce(nullif(sum(field)), '> 1'), 1) from ...

其中,如果NULLIF能够,它会给我field的总和,除非它大于1,在这种情况下它会给我1.当然,我问不可能有NULLIF ,仅用于进行基本字符串比较。

我不想使用CASE语句的原因是因为我替换field的地方是一个巨大的表达式,如果我这样做,我必须写两次:

select case when sum(field) > 1 then 1 else sum(field) from ...

我希望postgres有一个王牌,我不必这样做。有没有人遇到过这种困境?

1 个答案:

答案 0 :(得分:3)

所以你想要总和的最小值和1?那不是LEAST函数:

select LEAST(sum(field), 1) from ...