1

列のあるテーブルがあります:

PlayerId
Points

最高の選手を100人獲得したいです(選手のポイントが多ければ多いほど良いです)。そのための質問は何でしょうか?

SQLServer2008を使用しています

4

7 に答える 7

5
SELECT TOP 100 PlayerId
FROM TableName
ORDER BY Points DESC

それを分解するには:

  • TOP 100-返す上位100レコードを選択します。
  • ORDER BY Points DESC-結果をPointsフィールドごとに並べ替え、数値を逆に設定します(整数データ型DESCを想定)。Points
于 2012-07-11T13:51:15.720 に答える
3

クエリから一番上のXを選択してから、ポイントの降順で並べ替える必要があります。

select top 100 * from players order by Points DESC
于 2012-07-11T13:51:17.780 に答える
2

2人以上のプレーヤーが同じポイントを持っている場合はどうなりますか?さらに悪いことに、最大ポイントを持つ120人のプレーヤーがいる場合はどうなりますか?それらのプレーヤー全員を返すクエリを使用する必要があります。その場合は使用することをお勧めしますRANK

;WITH CTE AS
(
    SELECT *, RANK() OVER(ORDER BY Points DESC) RN
    FROM Players
)
SELECT *
FROM CTE
WHERE RN <= 100
于 2012-07-11T13:57:24.590 に答える
0
SELECT TOP 100 PlayerID 
FROM <<Table>> 
ORDER BY Points DESC
于 2012-07-11T13:51:28.393 に答える
0

Playersテーブル名が次のようになっていると仮定します。

SELECT TOP 100 PlayerId, Points
FROM Players
ORDER BY Points DESC
于 2012-07-11T13:51:57.123 に答える
0
SELECT TOP 100 PlayerId FROM name_of_your_table ORDER BY Points DESC
于 2012-07-11T13:51:59.853 に答える
0
SELECT TOP 100 *
FROM tblName ORDER BY Points DESC
于 2012-07-11T13:52:13.573 に答える