タグ

2009年11月29日のブックマーク (2件)

  • pgMeisterの日記 Oracleにはlimit、offsetはないの?

    PostgreSQLでは、 SELECT id,name,tel FROM meibo ORDER BY id LIMIT 100 OFFSET 200; MySQLでは、 SELECT id,name,tel FROM meibo ORDER BY id LIMIT 100,200; ってな感じで、名簿テーブルの200件目から、100件取り出す(ID順に)なんていうことをlimit、offsetを使って簡単にデータを取り出していたが、オラクルではダメらしいよ。limit、offsetがないのだ。ああ不便。 オラクルの場合は、以下のようにする。長くなるな、、。 SELECT id,name,tel FROM (SELECT id,name,tel,ROW_NUMBER() OVER (ORDER BY id) AS no FROM meibo) WHERE no BETWEEN 200 A

    fuki1234
    fuki1234 2009/11/29
    こっちじゃないとダメっぽい。全件走査とかありえないんだけど・・・。
  • Oracleでlimit offsetもどき - よねのはてな

    postgreSQLにはlimit offsetがあり時には非常に便利な機能。 Oracleの場合、ROWNUMを使って似たような事が出来ます。 Oracleにおいて、HOGEテーブルの検索結果の中から最初の10件を取得したい場合は select * from HOGE where rownum <= 10;または select * from HOGE where rownum between 1 and 10;とします、これは一般的によく使われる方法と思います。 では、10件目から5件取得したいとなった場合はどうでしょう。 上記と同じように select * from HOGE where rownum between 10 and 15;または select * from HOGE where 10 <= rownum and rownum <= 15;とすれば良いのでは?と思いますが

    Oracleでlimit offsetもどき - よねのはてな
    fuki1234
    fuki1234 2009/11/29
    なかなかめんどいなぁ・・・。