学生テーブルがあり、そこに 1000 件のレコードがあるとします。
100 レコードのみを選択するようなクエリを書きたいのですが、範囲を定義できるはずです。
Ex. 100 records showing from 501 to 600
or 100 records showing from 101 to 200
PSはい!ID 列がありますが、乱数で構成されています。
ご協力ありがとうございました。
これでうまくいくはずです。
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がない場合でも一貫した結果セットが得られるため、意味のあるページングや目的を実行できます。
MySQL を使用している場合は、LIMIT コマンドを使用します。
SELECT * FROM MyTable LIMIT X, Y
X は開始レコード、Y はレコード数です。したがって、501 から 600 の場合は、LIMIT 501, 100 を実行します。
これはおそらく他の SQL バージョンでも機能します。使用しているシステムの LIMIT コマンドを調べてください。
TOP
[ドキュメント]を SQL Server に使用する
SELECT TOP 100 *
FROM tableName
WHERE columnName BETWEEN 0 AND 100
しかし、LIMIT
MySQLの場合
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