这两天同事和我提起SQL端分页的问题,突然发现N久不考虑这东西了,回想回想居然敲不出来了,赶紧上网找找,记录以下。
Oracle的SQL分页<经典的三层>:
View Code
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
SQL Server的SQL分页<结合SQLServer2005以上的版本新加的Row_Number()>:
View Code
SELECT * FROM
(
SELECT ROW_NUMBER() OVER ( ORDER BY t.ID) ROWNUM, * FROM table_1 t
) CAL
WHERE ROWNUM BETWEEN ( PAGE_SIZE* PAGE ) + 1 AND PAGE_SIZE * PAGE
ORDER BY DATE ASC
My Sql 的SQL分页<limit>
View Code
SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset
当然还有很多其他的分页方式,可用得场景也不同,这里只是记录以下本人比较感兴趣的方式。