【Oracle SQL*Plus】末尾から指定された行数(=レコード数)を表示:WHERE ROWNUM
備忘録になります。末尾から指定された行数(=レコード数)を表示させる場合はWHERE, ROWNUMを利用します。サブクエリを使って工夫して表示させました。
SQL> SELECT * FROM TEST_TABLE;
2,NAME-B , 2,B
3,NAME-C , 3,C
4,NAME-D , 4,D
5,NAME-E , 5,E
1,NAME-A , 1,A
SQL> SELECT COUNT(*) FROM TEST_TABLE;
5
SQL> SELECT * FROM TEST_TABLE
2 MINUS
3 SELECT * FROM TEST_TABLE
4 WHERE ROWNUM <= 2;
1,NAME-A , 1,A
4,NAME-D , 4,D
5,NAME-E , 5,E
こんな感じで表示させます。ざっくり解説すると出力①(全表示)から出力②(表示させたくないレコード)を引き算しました。勝手にソートも掛かるのは謎です。
「ROWNUM >= 3」のような指定は期待通り表示されません。ROWNUM = 1からチェックされ、条件を満たされない時点で表示終了する仕様のようです。
関連記事