rowidに依存して、テーブルの最後の行に移動することはできません。適切な順序を設定するには、自動インクリメントIDまたは作成時間が必要です。
たとえば、次のように使用できます。
select *
from (select t.*, row_number() over (order by <id> desc) as seqnum
from t
) t
where seqnum <= 2
構文では許可されていますが、サブクエリのorder by句は無視されます(たとえば、http://docs.oracle.com/javadb/10.8.2.2/ref/rrefsqlj13658.html)。
明確にするために、ROWIDはテーブル内の行の順序とは何の関係もありません。Oracleのドキュメントは、データの物理アクセスパスを指定していることを明確に示しています(http://docs.oracle.com/cd/B28359_01/server.111/b28318/datatype.htm#i6732)。空のデータベースでは、レコードをnewtableに挿入すると、単調に増加する行IDのシーケンスが作成される可能性があります。 しかし、これに頼ることはできません。 ROWIDの唯一の保証は、それらがテーブル内で一意であり、特定の行にアクセスするための最速の方法であるということです。
最新バージョンのサブクエリで、Oracleの処理または順序の処理を行わないことに関する適切なドキュメントが見つからないことを認めなければなりません。ANSI SQLは、サブクエリでの順序付けをサポートするために準拠データベースを必要としません。Oracle構文ではそれが可能であり、少なくとも場合によっては機能するようです。私の推測では、おそらくシングルプロセッサ、Oracleのシングルスレッドインスタンス、またはデータアクセスがインデックスを介して行われる場合に機能するでしょう。並列処理が導入されると、結果はおそらく順序付けられません。Oracleを使い始めてから(1990年代半ば)、サブクエリの順序は一般的に無視されているという印象を受けました。私のアドバイスは、Oracleがサポートされていると明確に述べるまで、機能に依存しないことです。