最接近的数值 - 但总是返回较低的值

时间:2012-09-15 13:07:50

标签: database

我的问题与此非常相似:Find closest numeric value in database

但是,要采用上面链接中使用的示例,如何修改此代码以便返回最低匹配值。所以1.6会返回1.5,而1.8也会返回1.5? 提前致谢 标记

3 个答案:

答案 0 :(得分:1)

我没试过,但是怎么样

SELECT TOP 1 [property] FROM [table]
WHERE [valueColumn] < [input]
ORDER BY [input] - [valueColumn]

这样它只会使输入和输入的值低于它们与输入的“距离”。

答案 1 :(得分:0)

您可以尝试使用此代码 - 基于ASC and TOP(2) operators

SELECT TOP (2) YourProperty  FROM [myTable] 
WHERE (condition)
ORDER BY YourProperty ASC

答案 2 :(得分:0)

@AsgerArentoft的清洁版在我看来回答:

SELECT TOP 1 * FROM [table]
WHERE [valueColumn] <= [input]
ORDER BY [valueColumn] desc

<=非常重要,因为如果valueColumn的值为1,3,5且输入为3,则给定<,则返回的值为1。