SQL查找最近的语句

时间:2011-10-31 13:44:21

标签: sql vb.net ms-access

我希望在列行中找到最接近5的数字,然后将它排序在最靠近顶部。

这是我得到的......

SELECT TOP 1 * FROM Technicians WHERE Zone=15 ORDER BY Zone DESC

在vb中执行此操作并收到错误。

  

标准表达式中的数据类型不匹配。

2 个答案:

答案 0 :(得分:3)

这是一个 MS Access 错误,我猜你的Zone字段实际上并不是数字。

尝试WHERE Zone='15'

答案 1 :(得分:2)

要订购numeric列,使列表顶部的列最接近5,您需要一个函数来告诉您值与5的接近程度。ABS(value - 5)应该为你做到这一点。

这给出了以下条款......

ORDER BY
  ABS(tableValue - 5) ASCENDING


但请注意,您的错误消息表明您的Zone字段不是数字。这意味着您需要将值转换为数字类型,或将字段本身更改为数字类型。