我的问题与此非常相似:Find closest numeric value in database
但是,要采用上面链接中使用的示例,如何修改此代码以便返回最低匹配值。所以1.6会返回1.5,而1.8也会返回1.5? 提前致谢 标记
答案 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。