我正在创建一个数据库,其中包含一系列产品价格,我想测试一些查询,其中之一是“查找价格最接近100,000英镑的产品”。我将如何编写此查询?
产品表名称为“车辆”,价格表名称为“价格”
答案 0 :(得分:2)
一种方法是通过表达式使用order by
:
select t.*
from t
order by abs(price - 100000)
fetch first 1 row only;
fetch
子句是标准SQL,用于将结果集限制为一行。某些数据库使用其他构造,例如select top (1)
和limit
)。
答案 1 :(得分:0)
如果您使用的是SQL Server,这应该可以满足您的需求:
SELECT TOP 1 *
FROM [myTable]
ORDER BY ABS( price - 100000 )