我在db中有一个表,用作查找以查看某个值的得分。 表
5 1
10 2
15 3
如果给出一个输入,例如6,我如何在Java中查询表并看到6在5到10之间。所以它的分数是2。 如果它是12.它在10到15之间,分数是3。
或者可能不是数据库中的表,我可以将查找值保存在类中? 有没有更有效的方法来做到这一点?
答案 0 :(得分:0)
在这种情况下,您需要获取field1的最大值,该值小于当前记录的field1值,并检查搜索的值是否介于这两个值之间。如果是,请返回field2。假设没有重叠范围,您可以使用以下查询:
select field1, (select max(field1) from yourtable t2 where t2.field1<t1.field1) as lowerfield1, field2
from yourtable t1
where ...<fíeld1 and ...>=(select max(field1) from yourtable t2 where t2.field1<t1.field1)
搜索到的值必须代替...
。