ORACLEの件数指定によるSELECT (MySQLのlimit)

MySQLのlimitによる何件目から何件を取得、をOracleで実装。

MySQLの場合
select * from tbl_test order by colA desc limit 0, 10;

Oracleの場合
SELECT * FROM (
    SELECT dmy.*, ROWNUM rn FROM (
        SELECT * FROM tbl_test WHERE ORDER BY colA DESC
    ) dmy
) WHERE rn >= 1 AND rn <= 10;

注意点は、何番目からの指定方法。
MySQLのstartは0からなのに対し、OracleのROWNUMを使う場合のstartは1から。
また、ROWNUMは各select毎にあるので、件数指定したいROWNUMのカラム名がユニークになるように別名(この例では、rn)を付け、その別名に対して件数指定を行う。

さらに、order byのソートを使う場合は例のようにROWNUM指定の副問い合わせとしてorder byのselectを発行する必要がある。

カテゴリ

Amazon

アクセスランキング

[ジャンルランキング]
コンピュータ
249位
アクセスランキングを見る>>

[サブジャンルランキング]
プログラミング
38位
アクセスランキングを見る>>

RSSリンクの表示

ブロとも申請フォーム

Copyright © nopgm