2011-10-31 75 views
0

我正在寻找在列行中找到最接近5的数字,并将其排在最靠前的位置。SQL查找最近的语句

这里是我得到....

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

在VB和收到错误这样做。

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

+0

@marc_s - 这是Access错误消息。我为此标记了它。 – JNK

+0

什么是列行? – MatBailie

+0

您的问题标题似乎与实际文字不匹配 –

回答

2

要订购numeric柱之间,使得那些在列表的顶部是最接近5,您需要一个函数来告诉你一个值接近到5 ABS(value - 5)应该为你做的。

这给出了以下条款等

ORDER BY 
    ABS(tableValue - 5) ASCENDING 


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

3

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

尝试WHERE Zone='15'

+0

感谢您的支持。我修好了它。 – Merked