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行目はIDが100102のデータとなり開始位置になります。(左)
・1行目からデータを2行取得します。(右)
ID | L_NAME | F_NAME | SEX |
---|---|---|---|
100101 | 山田 | 晴男 | 1 |
100102 | 佐藤 | 愛 | 2 |
100103 | 鈴木 | 二郎 | 1 |
100104 | 田中 | 栄吉 | 1 |
100105 | 木村 | 匠 | 1 |
ID | L_NAME | F_NAME | SEX |
---|---|---|---|
100102 | 佐藤 | 愛 | 2 |
100103 | 鈴木 | 二郎 | 1 |
SQL実行例の説明(2)
・T1_SAMPLE表のSALEが500より大きいデータを2行取得します。
SELECT * FROM T1_SAMPLE
WHERE SALE > 500
LIMIT 2;
SQL実行の結果(2-1)
・WHEREが指定されているため条件式が優先されます。
・T1_SAMPLE表からまず条件式が真となるデータを取得します。(左)
・この3件から中からデータを2行取得します。(右)
ID | B1_CODE | SALE | BONUS |
---|---|---|---|
100101 | 23010 | 100 | 5.0 |
100102 | 23010 | 520 | 5.8 |
100103 | 33020 | 250 | 5.1 |
100104 | 47010 | 1000 | 7.4 |
100105 | 01030 | 1800 | 7.8 |
ID | B1_CODE | SALE | BONUS |
---|---|---|---|
100102 | 23010 | 520 | 5.8 |
100104 | 47010 | 1000 | 7.4 |