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


[149] Posted by kagahiro at 2005/03/21 16:41:09
クローズ | 1 point | Link (11) | Trackback (1) | Comment (0)

キーワード

SQL n件 Oracle 

ジャパンのホームページ

追記

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

  1. リネージュII・アイテム売買 (3 PV)
  2. Google トレンドとGoogle Insights for Searchが統合 (3 PV)
  3. Google AdSense のクリック率を上げるひどいテクニック (2 PV)
  4. SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (2 PV)
  5. はてなダイアリー、ブログモードの正式運用を開始 (2 PV)
  6. RabbitMQ (2 PV)
  7. FFR(日米政府の新たな貿易協議)で円高か #FX #ドル円 (2 PV)
  8. jHtmlArea (2 PV)
  9. 海外掲示板を読むために気になったスラング系英単語まとめ | Kousyoublog (2 PV)
  10. [Perl]UTF-8でエンコードされた英数字の全角半角変換を行うコード (2 PV)

今月のアクセスランキング TOP 10

  1. SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (123 PV)
  2. FC2まとめ (47 PV)
  3. 海外掲示板を読むために気になったスラング系英単語まとめ | Kousyoublog (42 PV)
  4. 2NN 2ちゃんねるニュース速報+ナビ (36 PV)
  5. Google Finance(グーグルファイナンス)- リアルタイム株価情報、金融ニュース、日本株 (29 PV)
  6. StartPage(スタートページ) - 匿名検索エンジン (23 PV)
  7. 裁量トレードを半自動化する無料のMT5向け裁量トレード支援ツール(裁量補助EA)「PositionKeeper MT5」 #FX (17 PV)
  8. MT4向け無料ヘッジ(両建て)ツール(EA)「STOPPER FREE」 #自動売買 #FX (16 PV)
  9. ガンマトレード(ガンマプレイ)とは #FX #用語解説 #オプション取引 (14 PV)
  10. Google Maps(グーグルマップ)日本版 - 地図検索、ルート検索 (14 PV)

アクセス統計

ディレクトリ

関連サイト