[seasar-s2dao-dev:530] Re: OracleRownumPagingSqlRewriterについて
JUNDU
[E-MAIL ADDRESS DELETED]
2007年 10月 30日 (火) 19:22:45 JST
JUNDUです。
SETO Azusa wrote:
> せとあずさです。
>
> OracleでS2Pagerを使っていて気になったのですが、
>
> もともとののS2Pagerは、オフセットが「1」ではじまるようになっています。(はず)
むむむっ、私の認識では「0」と思っていました。
> ただしOracleRownumPagingSqlRewriterはmakeLimitOffsetSqlメソッドの中で
> sqlBuf.append(offset + 1);
> しているため、これだとオフセットが「0」ではじまるようになっています。
>
> これってOracleでページングするときは「0」でスタートするのが慣例とか
> そういう事情があるんでしょうか?
MySQLやPostgreSQLのoffsetに合わせてあります。Oracle的には、1の方が楽なのです
けどね。Oracleの場合はオフセットではなく開始位置なので。
http://dev.mysql.com/doc/refman/5.1/en/select.html
http://www.postgresql.org/docs/8.2/static/queries-limit.html
オフセットって、開始位置を動かす分量だと思うので、1行目から抽出=開始位置を動
かさない=オフセット0というイメージだと思います。
seasar-s2dao-dev メーリングリストの案内