我得到了列表:
PlayerId
Points
我想获得100名最佳球员(得分越多,他就越好)。那会有什么问题?
我正在使用sql server 2008
答案 0 :(得分:5)
SELECT TOP 100 PlayerId
FROM TableName
ORDER BY Points DESC
要打破它:
TOP 100
- 选择要返回的前100个记录。ORDER BY Points DESC
- 按Points
字段对结果进行排序,DESC
将数字反向设置(假设Points
是整数数据类型)。答案 1 :(得分:3)
您需要从查询中选择前X,然后按点按降序排序。
select top 100 * from players order by Points DESC
答案 2 :(得分:2)
当两个或更多玩家拥有相同的积分时会发生什么?或者更糟糕的是,如果你有120名玩家拥有最高分,会发生什么。您应该使用一个返回每个玩家的查询。如果是这种情况,我建议您使用RANK
。
;WITH CTE AS
(
SELECT *, RANK() OVER(ORDER BY Points DESC) RN
FROM Players
)
SELECT *
FROM CTE
WHERE RN <= 100
答案 3 :(得分:0)
SELECT TOP 100 PlayerID
FROM <<Table>>
ORDER BY Points DESC
答案 4 :(得分:0)
假设您的表名为Players
:
SELECT TOP 100 PlayerId, Points
FROM Players
ORDER BY Points DESC
答案 5 :(得分:0)
SELECT TOP 100 PlayerId FROM name_of_your_table ORDER BY Points DESC
答案 6 :(得分:0)
SELECT TOP 100 *
FROM tblName ORDER BY Points DESC