以前分頁習慣用這樣的SQL語句:
select * from
(select t.*,rownum row_num from mytable t order by t.id) b
where b.row_num between 1 and 10
結(jié)果發(fā)現(xiàn)由于該語句會先生成rownum 后執(zhí)行order by 子句,因而排序結(jié)果根本不對,后來在GOOGLE上搜到一篇文章,原來多套一層select 就能很好的解決該問題,特此記錄,語句如下:
select * from
(select a.*,rownum row_num from
(select * from mytable t order by t.id desc) a
) b where b.row_num between 1 and 10
(select a.*,rownum row_num from
(select * from mytable t order by t.id desc) a
where rownum<=10
) b where b.row_num >= 1
很對
呵呵
select * from
(
select t.*,rownum row_num from mytable t order by t.id desc)
) where row_num between 1 and 10
我怎么可以呢?剛剛測試了下
你的不可以的。你可以多做些數(shù)據(jù),然后你會發(fā)現(xiàn)第一頁和第二的數(shù)據(jù)有什么區(qū)別
這個其實是可以的 現(xiàn)在oracle10g已經(jīng)可以了 并且無需在外面套那么多 一層也可以搞定