从sql中选择最好的100名玩家

时间:2012-07-11 13:50:00

标签: sql sql-server-2008

我得到了列表:

PlayerId
Points

我想获得100名最佳球员(得分越多,他就越好)。那会有什么问题?

我正在使用sql server 2008

7 个答案:

答案 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