SQLのSELECT文でn件目からm件目までのレコードを取得する方法(Oracle、SQL Server、MySQL、PostgreSQL)
SQLのSELECT文を使用して先頭からn件のレコードを取得するだけでなく、n件目からm件目までのレコードを取得することも可能です。
Oracle8i R8.1.5 以降
Oracle8i R8.1.5 以降では、Table1のField1の昇順に11件目から15件目までの結果セットを取得する場合は以下のSQL文で取得できます。
SELECT *
FROM (SELECT *, ROWNUM SEQNUM
FROM (SELECT * FROM Table1 ORDER BY Field1) A) B
WHERE SEQNUM > 10 AND SEQNUM <= 15;
Microsoft SQL Server 7.0 以降
Microsoft SQL Server 7.0 以降ではTOPを使用して、以下のSQL文で Table1の11件目から15件目までの結果セットを取得できます。
SELECT TOP 5 * FROM Table1 A
WHERE NOT EXISTS
(SELECT * FROM (SELECT TOP 10 * FROM Table1) AS B
WHERE A.Field1 = B.Field1)
ORDER BY A.Field1
その他のRDB
また、上記以外のRDBでも以下のSQL文で同様の結果が得られます。
SELECT DISTINCT COUNT(*), A.Field1, A.Field2, A.Field3
FROM Table1 A, Table1 B
WHERE (A.Field1 >= B.Field1)
GROUP BY A.Field1, A.Field2, A.Field3
HAVING COUNT(*) > 10 AND COUNT(*) <= 15

Oracle8i R8.1.5 以降
Oracle8i R8.1.5 以降では、Table1のField1の昇順に11件目から15件目までの結果セットを取得する場合は以下のSQL文で取得できます。
SELECT *
FROM (SELECT *, ROWNUM SEQNUM
FROM (SELECT * FROM Table1 ORDER BY Field1) A) B
WHERE SEQNUM > 10 AND SEQNUM <= 15;
Microsoft SQL Server 7.0 以降
Microsoft SQL Server 7.0 以降ではTOPを使用して、以下のSQL文で Table1の11件目から15件目までの結果セットを取得できます。
SELECT TOP 5 * FROM Table1 A
WHERE NOT EXISTS
(SELECT * FROM (SELECT TOP 10 * FROM Table1) AS B
WHERE A.Field1 = B.Field1)
ORDER BY A.Field1
その他のRDB
また、上記以外のRDBでも以下のSQL文で同様の結果が得られます。
SELECT DISTINCT COUNT(*), A.Field1, A.Field2, A.Field3
FROM Table1 A, Table1 B
WHERE (A.Field1 >= B.Field1)
GROUP BY A.Field1, A.Field2, A.Field3
HAVING COUNT(*) > 10 AND COUNT(*) <= 15
[149] Posted by kagahiro at 2005/03/21 16:41:09
クローズ | 1 point | Link (11) | Trackback (1) | Comment (0)
クローズ | 1 point | Link (11) | Trackback (1) | Comment (0)
キーワード
追記
| MySQL、PostgreSQLでn件目からm件目までのレコードを取得する方法 | |
| 例えば、31件目から40件までのレコードを取得したい場合、それぞれ以下のようになります。 MySQLの場合 SELECT * FROM Table1 ORDER BY Field1 LIMIT 30, 10; PostgreSQLの場合 SELECT * FROM Table1 ORDER BY Field1 OFFSET 30 LIMIT 10; |
|
| Posted by kagahiro at 2010/06/29 17:53:40 | |
SQLのSELECT文でn件目からm件目までのレコードを取得する方法(Oracle、SQL Server、MySQL、PostgreSQL) 関連リンク
| SQLで先頭から上位10件のレコードを取得する方法(Oracle、SQL Server、MySQL、PostgreSQL) | |
| 「先頭からn件のレコード(結果セット)だけ取得する方法が知りたい。」というのは、データベース関連のメーリングなどで以前からよくある質問ですが、RDBの種類やバージョン... |
|
| SQL | |
| Structured Query Language(構造化問合せ言語) のことで、データベースの定義や操作などを実現するためのデータベース言語の一つ... | |
| SQL 書籍 | |
| リレーショナルデータベースの標準言語であるSQLに関する入門書やリファレンス、プログラミング解説書などの書籍。SQLプログラミング入門―12のレッスンで学ぶリレーショナル... | |
| Oracle(オラクル) | |
| Oracle(オラクル)とは、米Oracle社が開発・販売している高機能データベース製品のことで、UNIX、Linux、Windowsなど各種OS向けの製品が存在する。主に企業の業務システム... | |
| Oracle(オラクル) 書籍 | |
| Oracle(オラクル)に関する書籍。Oracleの入門書、データベースのアーキテクチャから運用・管理、データベース設計、PL/SQL、プログラミングなど。Oracle DB ユーザーズガイド... |
|
| MySQL | |
| MySQLとは、フィンランドのMichael Widenius氏よって開発された、オープンソースライセンスで配布されている高速性に重点を絞った軽快なRDBMSで、欧米などで広く普及している。... | |
| MySQL 書籍 | |
| オープンソースの高速・軽量データベース「MySQL」に関する書籍。入門書や運用管理についての詳細な解説書、リファレンスなど。MySQL 徹底入門 第2版オープンソースのデータベース... |
|
| [Perl]DBI経由でMySQLに接続して、SELECT文でデータを取得するサンプルプログラム | |
| PerlのプログラムからDBI経由でMySQLに接続し、SELECT文でデータを取得する処理のサンプルプログラムです。あらかじめphpMyAdminを使用してMySQLにテータベース「testdb」を作成し、以下のSQL... |
|
| PostgreSQL | |
| PostgreSQLとは、オープンソースの本格的なリレーショナルデータベースで、問い合わせ言語としてSQLが使えるほか、トランザクション、行レベルロック、副問い合わせなどの重要な機能も... |
|
| SQL Server | |
| SQL Serverとは、Microsoft社がWindows Server用に開発・販売しているRDBMSのこと。Microsoft SQL Server ホームマイクソフトのSQL Server公式サイト。製品情報、技術情報、サービスパック・評価版... |
|
| SQLiteのSELECT文でn件目~m件目までのデータを取得する | |
| SQLiteのSELECT文でn件目〜m件目までのデータを取得する場合も、上位n件の場合と同様にLIMIT句を使用しますが、開始位置の指定が必要になります。データは開始位置で指定した値の次のレコードから取得されます。構文... | |
SQLのSELECT文でn件目からm件目までのレコードを取得する方法(Oracle、SQL Server、MySQL、PostgreSQL) トラックバック
トラックバックURL :
| Linked from ネット掲示板 - ゴクBBS : SQL質問スレ at 2016/09/29 13:57:53 | |
| このスレでは「こういうことをやりたいんだけどSQLでどう書くの?」「こういうSQLを書いたんだけどうまく動きません><」といった質問を受け付けています。SQLはISOによって標準化されていますが、標準を100%実装し... | |
SQLのSELECT文でn件目からm件目までのレコードを取得する方法(Oracle、SQL Server、MySQL、PostgreSQL)へのコメント
アクセスランキング
今日のアクセスランキング TOP 10
- SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (6 PV)
- 2NN 2ちゃんねるニュース速報+ナビ (3 PV)
- Google Finance(グーグルファイナンス)- リアルタイム株価情報、金融ニュース、日本株 (2 PV)
- 10baggerの配布は終了しました (2 PV)
- さきゅばす - ニコニコ動画コメント付き動画保存ソフト (2 PV)
- FC2WiFI (2 PV)
- 裁量トレードを半自動化する無料のMT5向け裁量トレード支援ツール(裁量補助EA)「PositionKeeper MT5」 #FX (2 PV)
- ニコニコ動画は本気でMADを削除する気があるのだろうか (2 PV)
- 人気ナンピンマーチンEA「NPNM_v3」向けサンプルセットファイル (1 PV)
- RIA(Rich Internet Application、リッチインターネットアプリケーション) (1 PV)
今月のアクセスランキング TOP 10
- SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (67 PV)
- 2NN 2ちゃんねるニュース速報+ナビ (14 PV)
- Google Finance(グーグルファイナンス)- リアルタイム株価情報、金融ニュース、日本株 (10 PV)
- 裁量トレードを半自動化する無料のMT5向け裁量トレード支援ツール(裁量補助EA)「PositionKeeper MT5」 #FX (7 PV)
- SQLiteのSELECT文で上位 (TOP) n件のデータを取得する (6 PV)
- StartPage(スタートページ) - 匿名検索エンジン (5 PV)
- FC2まとめ (5 PV)
- 人気ナンピンマーチンEA「NPNM_v3」向けサンプルセットファイル (5 PV)
- YouTube(ユーチューブ)日本版 - 動画共有、ライブ配信 (5 PV)
- 日経平均株価(にっけいへいきんかぶか) (4 PV)
アクセス統計
ディレクトリ
関連サイト