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
- [PR]noteで販売しているEAの使用期限を無期限にして価格を改定します。 (1 PV)
- GCC開発者らがGoogleの「Go言語」をサポートする方針を発表 - SourceForge.JP Magazine (1 PV)
- [将棋]豊島将之八段の作戦勝ちで前回準優勝の佐藤和俊六段に完全勝利 #NHK杯 (1 PV)
- ナンピンEA「Nanpin K」のサンプルセットファイルを公開 (1 PV)
- 59Tracker Project: 概要 - SourceForge.JP (1 PV)
- PRISM(プリズム) (1 PV)
- 民主党小沢代表辞意撤回の茶番劇 (1 PV)
- [FX]裁量ポジションの自動トレールや時間決済ができるMT4向け無料ツール(EA)「PositionKeeper」をバージョンアップ (1 PV)
- Windows Live Writer(ブログエディタ) (1 PV)
- MT4向けブレイクアウトEA「NEKONEKO(ネコネコ) FREE」(0.01ロット固定、無料、使用期限無し) (1 PV)
今月のアクセスランキング TOP 10
- SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (344 PV)
- 2NN 2ちゃんねるニュース速報+ナビ (43 PV)
- 安全性重視の完全無料ナンピンマーチンEA「Million Dollar(ミリオンダラー)」 #FX #ゴールド #ビットコイン (31 PV)
- [PR]noteで販売している自作EAの一覧 (31 PV)
- DECOLOG(デコログ) (29 PV)
- SQLiteのSELECT文で上位 (TOP) n件のデータを取得する (28 PV)
- 裁量トレードを半自動化する無料のMT5向け裁量トレード支援ツール(裁量補助EA)「PositionKeeper MT5」 #FX (27 PV)
- Google News (グーグルニュース)日本版 (26 PV)
- 仲値トレードが簡単にできる無料EA「NAKANE3 Ver 2.04」 #MT4 (23 PV)
- 自作のMT4向け無料EA(口座縛り無し、ブローカー縛り無し、使用期限無し)とゴゴジャン出品中の有料EAの一覧 #MT4 (22 PV)
アクセス統計
ディレクトリ
関連サイト