2012-02-18 30 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