スレッド ID を選択します
(
cs_threads からの Pos として threadid、ROW_NUMBER() OVER (stickydate による順序) を選択します
) Tとして
ここで、T.Pos > 100000 および T.Pos < 100030
====================================== =====
テーブル cs_threads のデータ量が非常に大きい場合 (たとえば、数億レコード)、このメソッドには問題が発生します
。
(
cs_threads からの Pos として threadid、ROW_NUMBER() OVER (stickydate による順序) を選択します
) Tとして
ここで、T.Pos > 100000 および T.Pos < 100030
このステートメントは、cs_threads から select threadid、ROW_NUMBER() OVER (order by Stickydate) を Pos として取り出し、SQL の外部でページングを実行します。これは、ORACLE での元の記述方法が「いいえ、その方が良い」であるため、SQL2005 ではテストされていません。 ORACLE で次のように記述するには: select threadid from
(
select threadid, ROW_NUMBER() OVER (stickydate による順序) as Pos from cs_threads a where a.pos<100030
) Tとして
ここで、T.Pos > 100000
出典: blog.joycode.com/dotey/archive/2006/01/16/70493.aspx