我的问题与此非常相似:在数据库中查找最接近的数值
但是,以上面链接中使用的示例为例,如何修改此代码以返回最低匹配值。所以 1.6 会返回 1.5,但 1.8 也会返回 1.5?提前谢谢马克
我的问题与此非常相似:在数据库中查找最接近的数值
但是,以上面链接中使用的示例为例,如何修改此代码以返回最低匹配值。所以 1.6 会返回 1.5,但 1.8 也会返回 1.5?提前谢谢马克
我没试过,但是怎么样
SELECT TOP 1 [property] FROM [table]
WHERE [valueColumn] < [input]
ORDER BY [input] - [valueColumn]
?
这样,它只会采用低于输入的值,并按它们到输入的“距离”排序。
您可以尝试使用此代码 - 基于ASC and TOP(2) operators
SELECT TOP (2) YourProperty FROM [myTable]
WHERE (condition)
ORDER BY YourProperty ASC
在我看来,@AsgerArentoft 的答案更简洁:
SELECT TOP 1 * FROM [table]
WHERE [valueColumn] <= [input]
ORDER BY [valueColumn] desc
<=
很重要,因为如果valueColumn
有值 1,3,5 并且输入是 3,<
那么返回的值将是 1。