在表table里,结构为id,value
要查找某一行,它的value值和数值100最接近,即value-100的绝对值最小,查询语句要怎么写?

解决方案 »

  1.   

    select * from table having abs(value-100) = min(abs(value-100))
      

  2.   

    SELECT * FROM (SELECT MIN(ABS(c-100))as cl, c  from b) as a left join b on a.c = b.c
      

  3.   

    不行啊。提示“试图执行的查询中不包含作为合计函数一部分的特定表达式id”!
    我用的是access
      

  4.   

    seu07201213 的查询语句 select * from table having abs(value-100) = min(abs(value-100))
    无法执行,错误信息是“试图执行的查询中不包含作为合计函数一部分的特定表达式id”goodboyws(深夜不眠者(VCMVP)) 的查询语句我看不懂,我只有一个表,怎么你的查询语句给出了a和b两个表呢?
      

  5.   

    b是你要的表,a是一个临时的标记, c是你要的字段value
      

  6.   

    谢谢楼上。我已经改成可以查询的语句了,但是提示“试图执行的查询中不包含作为合计函数一部分的特定表达式value”。 和seu07201213的语法错误很类似呀!
    我用的是access
      

  7.   

    哦,我给的是sybase等环境下的。。
    至于你的access,这样:select * from table where id in (select min(abs(value-100)) + 100 from table)