-1

我的问题与此非常相似:在数据库中查找最接近的数值

但是,以上面链接中使用的示例为例,如何修改此代码以返回最低匹配值。所以 1.6 会返回 1.5,但 1.8 也会返回 1.5?提前谢谢马克

4

3 回答 3

1

我没试过,但是怎么样

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

?

这样,它只会采用低于输入的值,并按它们到输入的“距离”排序。

于 2012-09-15T13:40:56.233 回答
0

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

SELECT TOP (2) YourProperty  FROM [myTable] 
WHERE (condition)
ORDER BY YourProperty ASC
于 2012-09-15T13:14:36.997 回答
0

在我看来,@AsgerArentoft 的答案更简洁:

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

<=很重要,因为如果valueColumn有值 1,3,5 并且输入是 3,<那么返回的值将是 1。

于 2018-05-04T23:11:17.480 回答