学习postgres/SQL的全新功能我有一个名为error_table的表,它看起来像这样:
id min max error_percent
10R46 1 25 9
10R46 25 50 9
100R91 50 100 4.5
10R91 100 200 4.6
10M95 200 300 5.5
但是当我的输入数字是160时,我很难生成关于如何动态执行此操作的查询,我想返回error_percent值4.6,因为160位于最小列100和最大列200之间。
到目前为止,以下是我在查询中的内容
SELECT error_percent FROM error_table WHERE min <= 160
现在的问题是,我不能使用max <=160
。我将如何动态查询返回的最小结果的相应最大值,并将其用作我的最大值<=返回max?
如果你有比我更好的解决方案,我很感激你的分享。
使用范围比较:
SELECT error_percent
FROM error_table
WHERE min < 160 AND max >= 160;
这假设您的范围在最小侧为打开,在最大侧为关闭。如果没有,则需要更改上述范围比较。