揮発性のメモ2

http://d.hatena.ne.jp/iww/

OracleでLIMITを実装する

MySQLとかにあるLIMITをなるべく原型を留めてOracle用に書き換える

  SELECT a,b,c FROM hoge ORDER BY a
    LIMIT 10,20;

SELECT * FROM ( SELECT rownum rnum, tmpt.* FROM ( 
  SELECT a,b,c FROM hoge ORDER BY a 
) tmpt ) WHERE rnum>10 AND rnum<=10+20 ORDER BY rnum;

出力結果に、オリジナルにはないrnumが混ざるが無視する。最後のORDER BYは保険。