2012-02-18 193 views
24

我的Access数据库表有2列:名称和价格。我想做一个查询,选择前10名最高价格。这个怎么做?谢谢。如何在Access查询中选择前10名?

+4

欢迎StackOverflow上。请参阅[FAQ](http://stackoverflow.com/faq)了解如何在此处提问。这不是'给我Codeh'网站。另外感兴趣的可能是[你试过了什么?](http://mattgemmell.com/2008/12/08/what-have-you-tried/) – 2012-02-18 06:10:34

回答

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

更新:@Remou指出:

“访问SQL选择匹配,所以它会选择具有相同 最高价格的所有项目,即使这包括超过10条记录。 解决方法是按价格和唯一字段(列)进行排序。“

所以,如果你有一个唯一的产品代码列中添加像这样:

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

只是一个快速评论 - 访问SQL选择匹配,所以它会选择具有相同最高价格的所有项目,即使这包括10个以上的记录。解决方法是按价格和唯一字段(列)进行排序。 – Fionnuala 2012-02-18 17:56:31

+1

+1。我在使用ORDER BY时遇到了返回太多行的问题。 – Praesagus 2012-11-21 23:57:59

+0

请注意,使用ADO从Excel访问数据库时也会发生此问题。这里的解决方案(使用添加到'ORDER BY'的任意主密钥)完美地工作! – Gaffi 2013-08-12 15:15:03