SQL-92/99 Oracle Db2 SQL Server MySQL PostgreSQL Access

MySQL/

SELECT ...
FROM ...
LIMIT [ 開始位置(行数), ] 取得する行数


PostgreSQL/

SELECT ...
FROM ...
LIMIT { 取得する行数 | ALL } [ OFFSET 開始位置(行数) ]

LIMITは問い合せ結果で取得する行数を制限するときに使用します。

このとき取得する開始位置をオフセット(OFFSET)といい、問い合せ結果の先頭(0)からの位置付けを指定します。


LIMITとWHEREを一緒に指定した場合にはWHEREが優先されます。


関連キーワード





SQL実行例の説明(1)

T1_SAMPLE表の1行目(開始位置)から2行(取得する行数)データを取得します。


-- MySQL/
SELECT * FROM T1_SAMPLE
LIMIT 1, 2;

-- PostgreSQL/
SELECT * FROM T1_SAMPLE
LIMIT 2 OFFSET 1;


SQL実行の結果(1-1)

・T1_SAMPLE表の1行目はID100102のデータとなり開始位置になります。(左)

・1行目からデータを2行取得します。(右)


IDL_NAMEF_NAMESEX
100101山田晴男1
100102佐藤2
100103鈴木二郎1
100104田中栄吉1
100105木村1
SQL Result
IDL_NAMEF_NAMESEX
100102佐藤2
100103鈴木二郎1



SQL実行例の説明(2)

・T1_SAMPLE表のSALE500より大きいデータを2行取得します。


SELECT * FROM T1_SAMPLE
WHERE SALE > 500
LIMIT 2;


SQL実行の結果(2-1)

・WHEREが指定されているため条件式が優先されます。

・T1_SAMPLE表からまず条件式が真となるデータを取得します。(左)

・この3件から中からデータを2行取得します。(右)


IDB1_CODESALEBONUS
10010123010 1005.0
10010223010 5205.8
10010333020 2505.1
1001044701010007.4
1001050103018007.8
SQL Result
IDB1_CODESALEBONUS
10010223010 5205.8
1001044701010007.4