2017-05-31 104 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匹配的值的列 –