如何为PL/PGSQL函数中的整数变量设置上下边界?
PL/PGSQL中限制数值范围的替代方案(无需IF条件)
可以直接借助PostgreSQL内置的GREATEST()和LEAST()函数组合,一行代码完成数值的范围约束,替代IF分支判断。
将你原本的计算语句替换为:
v_running_sum := GREATEST(100000, LEAST(v_running_sum + (30 - v_calcuated_value)*100000, 9900000));
逻辑说明:
- 先通过
LEAST()函数,把计算后的临时值和上限9900000取较小值,确保结果不超出上限 - 再通过
GREATEST()函数,把上述结果和下限100000取较大值,确保结果不低于下限
这种写法简洁高效,直接将v_running_sum约束在[100000, 9900000]范围内。
内容的提问来源于stack exchange,提问作者Steve Chacko
相关产品推荐
相关产品推荐

