2008年12月26日金曜日

[SQL] SQLでのページング(Oracle)

Oracleでデータベースを利用したページング。

ページングは面倒。
SQLもなかなか綺麗にならないです。

  1. SELECT * FROM  
  2. (  
  3.  SELECT row1, row2, row3, ROWNUM num FROM  
  4.  (  
  5.   SELECT * FROM table ORDER BY row1 DESC  
  6.  )  
  7. )  
  8. WHERE num > $PageMax * $PageNumber AND num <= $PageMax * ( $PageNumber + 1 )  


とりあえず作ってみたけども。


…すごく不満。美しくない。なんかこう、つまらない。


特に2番目のSELECTのところは、カラムの名前全部書かないとOracleははじいてくるらしい。
何かいい方法ないかなぁ…。


あ、ちなみに簡略化して書いていますが。
$PageMaxとか$PageNumberとかには、値を入れますので念のため。



あーーーっっ!!(不満のオーラ)