2011-10-31 60 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