【发布时间】:2016-01-13 20:13:20
【问题描述】:
我正在尝试在 SQL 中找到与给定值最接近的数字。我已经查询了多个结果:
SELECT *
FROM Cars
ORDER BY ABS(price - $price)
我知道我可以使用 LIMIT 1 来限制表格,这样我就有一个最接近给定值的数字。但是我怎么能包括关系呢?例如,当有三四辆价格相同的汽车时?相同价格的汽车数量是动态的,所以我无法指定某个 LIMIT。
我也知道我可以使用SELECT TOP 1 WITH TIES,但是我不能使用这个查询,因为我的数据库驱动程序不允许它。有没有人对如何实现这一点有其他想法?
例子:
- 汽车 1 = 2000
- 汽车 2 = 3000
- 汽车 3 = 3000
- 汽车 4 = 1500
当我想要最接近 3000 的汽车时,查询应该返回:
- 汽车2
- 汽车3
但没有在查询中使用静态 LIMIT,因为每次相同价格的汽车数量可能不同。谢谢
【问题讨论】: