0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

OracleでROWNUMを使った取得レコード数指定(LIMIT句のようなもの)

Last updated at Posted at 2023-08-14

OracleにLIMIT句は無い

まず前提として、OracleにはLIMIT句というものは存在しません。
そのかわり ROWNUM という仮想カラムを使ってLIMIT句と同じようなことができます。

やり方

5レコードだけ取ってくるサンプル
SELECT * 
FROM テーブル名
WHERE ROWNUM <= 5

ORDER BY との関係について注意

ROWNUMが採番された にORDER BYされます。
逆ではないので注意。

ORDER BY の後に上位〇レコード取りたい時

サブクエリでORDER BYした後にROWNUMで絞り込む必要があります。

SELECT エイリアス名.*
(SELECT * FROM テーブル名 ORDER BY カラム名) エイリアス名
WHERE ROWNUM <= 5 

蛇足

大量のレコードがあるテーブルに対して、インデックスを貼っていないカラムでWHERE絞り込みするとすっごい遅いです。
サンプルデータが見たいだけなら WHERE ROWNUM <= 〇 しとくと表示速いです。

参考サイトさん

バージョン

Oracle Database 11g Release 11.2.0.1.0 - 64bit Production

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?