0

学生テーブルがあり、そこに 1000 件のレコードがあるとします。

100 レコードのみを選択するようなクエリを書きたいのですが、範囲を定義できるはずです。

Ex. 100 records showing from 501 to 600
or 100 records showing from 101 to 200

PSはい!ID 列がありますが、乱数で構成されています。

ご協力ありがとうございました。

4

3 に答える 3

3

これでうまくいくはずです。

SELECT a.* FROM (
     SELECT Row_Number() OVER(ORDER BY table.MySortCol) as RowNum,
     table.* -- columns you need
     FROM table
) a
WHERE a.RowNum between 1 and 100

これにより、テーブルにシーケンシャルIDがない場合でも一貫した結果セットが得られるため、意味のあるページングや目的を実行できます。

于 2012-10-31T13:10:13.070 に答える
1

MySQL を使用している場合は、LIMIT コマンドを使用します。

SELECT * FROM MyTable LIMIT X, Y

X は開始レコード、Y はレコード数です。したがって、501 から 600 の場合は、LIMIT 501, 100 を実行します。

これはおそらく他の SQL バージョンでも機能します。使用しているシステムの LIMIT コマンドを調べてください。

于 2012-10-31T13:04:12.590 に答える
1

TOP[ドキュメント]を SQL Server に使用する

SELECT TOP 100 *
FROM tableName
WHERE columnName BETWEEN 0 AND 100

しかし、LIMITMySQLの場合

SELECT *
FROM tableName
WHERE col BETWEEN 0 AND 100
LIMIT 100

更新 1

WITH sampleRec
AS
(
    SELECT column1, col2, col3,
           ROW_NUMBER() OVER (ORDER BY colName) rn
    FROM yourTableName
)
SELECT column1, col2, col3
FROM sampleRec
WHERE rn BETWEEN 1 AND 100
于 2012-10-31T13:03:34.123 に答える