如何在Access查询中选择前10个?

32

我的Access数据库表有两列:名称和价格。我想查询出前10个最高价格的项。如何实现?谢谢。


6
欢迎来到StackOverflow。请查看FAQ了解如何在此提问。这不是一个“给我代码”的网站。另外,您可能会对你试过什么?感兴趣。 - Brian Roach
1个回答

59
select top 10 Name, Price
from MyTable
order by Price desc

更新:@Fionnuala 指出:

"Access SQL 会选择匹配的记录,因此它将选择所有拥有相同最高价格的项目,即使这包括超过10条记录。解决方法是按价格和唯一字段(列)排序。"

因此,如果您有一个唯一的产品代码列,请按以下方式添加:

select top 10 Name, Price
from MyTable
order by Price desc, UniqueProductCode desc

20
一个快速的评论 - Access SQL 选择匹配项,因此它会选择所有具有相同最高价格的项目,即使这包括超过10个记录。解决方法是按价格和唯一字段(列)排序。 - Fionnuala
1
修复后加1。当我使用ORDER BY时,访问返回太多行的问题困扰着我。 - Praesagus
额外说明,使用ADO从Excel访问数据库时也会出现此问题。在此处使用添加到“ORDER BY”的任意主键的解决方案完美地解决了这个问题! - Gaffi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接