SQL为varchar

时间:2017-05-31 21:49:51

标签: mysql sql

我需要查询哪个得到最接近的行,但这个容差是+/- 10%。 例如,我的var等于2.5,我需要选择一个行,最接近2.5,容差为10%(向上和向下)。

1 个答案:

答案 0 :(得分:1)

这有点难看,但应该有效:

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

请注意,如果有多个行具有相同的最小增量,则此查询可能会匹配多行。