表T有一个字段id是int型的,如何用sql语句来查询和给定的某个值最接近的值,
比方说id:2,4,5,6,7要查出和5最近的id的select语句该怎么写呢?

解决方案 »

  1.   

    仅供参考
    SELECT * FROM ID = (SELECT TOP(1)ID FROM (SELECT abs(ID-5) AS NUM,ID FROM T)ZZ ORDER BY NUM)
      

  2.   

    select top 1 id  from [tb] t order by abs(id-5)
      

  3.   

    这个不错,如果要用到min的话,可以不?
      

  4.   

    min(id-5)这个思路的话可以不?我就是还不知道该怎么去操作    select abs(min(id-5)) from t 但是这样的话,我就不能取到id=5的,而是直接取到了6了
      

  5.   

    你的意思是select top 1 id from tb min(abs(id-5)) 吧 
      

  6.   

    惭愧,哈哈,是啊,是错了呢    select min(abs(id-5))+5 from t