在这个例子中,我们可以使用GROUP BY不仅确定的排序返回的行的,还能有什么行被返回,因为我们使用TOP限制结果集。
假设我们要从一个未命名的热门问答网站中返回信誉度最高的前5位用户。
没有ORDER BY
该查询返回默认情况下排在前5位的行,在本例中为“ Id”,即表中的第一列(即使结果中未显示该列)。
SELECT TOP 5 DisplayName, Reputation FROM Users
返回...
显示名称 | 声誉 |
---|---|
社区 | 1 |
杰夫·达尔加斯(Geoff Dalgas) | 12567 |
贾罗德·迪克森(Jarrod Dixon) | 11739 |
杰夫·阿特伍德 | 37628 |
乔尔·斯波斯基 | 25784 |
与ORDER BY
SELECT TOP 5 DisplayName, Reputation FROM Users ORDER BY Reputation desc
返回...
显示名称 | 声誉 |
---|---|
乔恩·斯基特 | 865023 |
达林·迪米特罗夫(Darin Dimitrov) | 661741 |
BalusC | 650237 |
汉斯·帕桑特 | 625870 |
马克·格雷韦尔 | 601636 |
备注
某些版本的SQL(例如MySQL)LIMIT在末尾SELECT而不是TOP在开头使用子句,例如:
SELECT DisplayName, Reputation FROM Users ORDER BY Reputation DESC LIMIT 5