[Seasar-user:10529] Re: [DBFlute]Paging のSQLについて(Oracle)

kubo [E-MAIL ADDRESS DELETED]
2007年 9月 14日 (金) 15:39:03 JST


久保です。

米原さん、こんにちわ

> 確かに、1ページ目のSQLを2ページ目と同様に記述
> してみると、若干取得順序が変わる場合があることを
> 確認致しました。
> 
> ■1ページ目(修正版)
> SELECT * FROM
>     (SELECT base.*, rownum as rn FROM
>         (SELECT A_TBL.A_CD, A_TBL.A_FLG FROM A_TBL		
>         ORDER BY A_TBL.A_FLG asc) base)	
> WHERE rn > 0 and rn <= 10		
> 
> 
> ORDER BYでユニークなカラムを指定していない以上、
> 元の方法で必ず重複する条件、及び修正版で必ず重複しないか、
> といった証明は難しいですが、より取得順序の精度が高いのは
> 修正版の方だと思われます。(少なくとも、現在報告を受けています
> 重複は回避できるそうですし)
> 
> こちらの修正の取込をご検討頂けないでしょうか?

うおお、ありがとうございます!(大感謝)

OracleのRownumは本当にクセが強いため、
もう一度自分でも検証してみます。

問題なさそうであれば、提示して頂きました修正を
反映させたいと思います。

本当にありがとうございます。
もし何か追加情報ありましたらまたよろしくお願いします。





Seasar-user メーリングリストの案内