OracleのROWNUMについて。
この記事の内容はコチラです
- OracleのROWNUMの使い方
- OracleはLIMITが使えない?
今回は、Oracleの「ROWNUM」について紹介します!
OracleはLIMITの代わりにROWNUMを使う
Oralceでデータ抽出する際、「最初の〇行を取得する」には疑似列「ROWNUM」を使います。
Mysqlでは「LIMIT」が使えますが、Oracleでは「LIMIT」が使えないので「ROWNUM」を使います。
サンプルデータ
--empテーブルを取得する SELECT empno,empname FROM emp order by empno;
empno | empname |
A001 | 佐藤花子 |
A002 | 田中太郎 |
A003 | 加藤一 |
A004 | 青木花 |
A005 | 藤田学 |
例1. 疑似列ROWNUMを使う
--上位3件(empno順)を取得する SELECT empno,empname FROM ( SELECT empno,empname FROM emp order by empno ) WHERE ROWNUM <= 3 order by empno ;
empno | empname |
A001 | 佐藤花子 |
A002 | 田中太郎 |
A003 | 加藤一 |
OracleでLimitと同じことをするには、まず副問い合わせを使用してデータをあらかじめ並び替えておきます。
ここでは(SELECT ~ order by empno)としてempno順に並び替えました。すると疑似列ROWNUMが1から順番に振られます。疑似列ROWNUMは並び替えた順に振られる仮の番号です。
上位3件を取得したい場合、この並び替えたあとの疑似列ROWNUMを使って「ROWNUM <= 3」とすれば取得できます。
これでMysqlのLIMITと同じことができました。
以上、OracleのROWNUMでした。
コメント