2014-06-27 133 views
0

我有一个具有以下信息的表格:SQL查询来获取最高值表

ID   Name  Value  
===   =====  ======= 
1   apple  5 
2   green  10 
3   orange  1 
4   blue  0 
5   fish  3 
6   lettuce  2 
7   cabbage  4 
8   computer 1 
9   car  0 
10   sport  9 
11   racing  15 

我希望能够只拉在此表3个最高值的记录。所以,例如,我想按顺序拉下面的内容。

11   racing  15 
2   green  10 
10   sport  9 

我知道我可以使用ORDER BY按值对它们排序,所以它给了我最高的优先。但是,我将如何查询只获得这些记录?

+1

添加限制3到查询结束 – Uriil

+1

这是mysql还是sql-server? – Hogan

+0

这是mysql服务器 –

回答

5

你可以做

select * from your_table order by Value desc limit 3 
+0

哇这很简单,谢谢!! –

+0

我怎么能够如果,我有5行,只有1有一个值10和最后4有一个值0,我可以自动调整顺序到不同的领域? –

+0

@BradHazelnut - 只需在列表的末尾添加更多内容。 – Hogan

2

在SQL Server

SELECT TOP 3 * FROM tablename order by Value DESC 
1

则可以按多列。如果我正在解释您的请求,您可以订购价值降序,名称。所以10的结果仍然是第一,其次是所有0的结果,按名称按字母顺序排列。