2017-05-31 87 views
-1

我需要查询得到最接近的行,但+/- 10%的容差。 例如,我的var等于2.5,我需要选择一个行,它最接近2.5,公差为10%(上下)。SQL Select closet row value to varchar

+0

我投票结束这个问题作为题外话,因为“gimme teh codez”。堆栈溢出不是一个代码写入服务 - 您希望在发布之前至少尝试自行解决它。 – EJoshuaS

+0

您是否认为我没有尝试解决它自己?我应该只写select * from table?因为我不知道我应该怎么做下一步.. – Jensej

+0

如果你*确实*,实际上,尝试一些事情,请编辑问题,以显示你试过什么,以及它出了什么问题。 – EJoshuaS

回答

1

这是有点难看,但它应该工作:

select 
    * 
from 
targetTable t 
where 
    abs(rowValue-2.5) = (
    select 
     min(abs(rowValue-2.5)) as smallestRowValueDelta 
    from 
     targetTable 
) 

注意这个查询可以匹配的情况下,也有具有相同最小增量多行多行。

+0

谢谢,但我不明白什么是rowValue – Jensej

+0

rowValue是存储您尝试与您的var匹配的值的列 –