这里想了解下,关于SQL Server中分页和Oracle中分页;
平常写应用程序的时候,比如用的语言是Java,有个列表页面,需要对数据分页显示;
这里要分页难道不需要借助Java,而直接sql能知道分页吗,起码也要传个页码进去给SQL吧!另外说的Oracle分页,是不是Oracle本身也能分页,在应用程序中也是不需要借助其它的呢?
平常写应用程序的时候,比如用的语言是Java,有个列表页面,需要对数据分页显示;
这里要分页难道不需要借助Java,而直接sql能知道分页吗,起码也要传个页码进去给SQL吧!另外说的Oracle分页,是不是Oracle本身也能分页,在应用程序中也是不需要借助其它的呢?
(1):一次性查询出来,然后根据不同页码来显示出相应结果(select * from table )
(2):每次只查询你需要显示的条数,然后根据你提供的页码显示相应的记录数,这时一般用sql来查询,比如每页显示5条,现在是第二页,那么我就查数据中5-10条,具体sql就不写了。(网上查下很简单)
SQL 分页是啥?分页一般都是用 SQL 语句写的啊,有可能有人也会使用存储过程去写。
sql server呢最好是用游标
我个人觉得哈
select rownum r, field1,field2 from table_name where rownum <= currentPage * rowPerPage
)
where r > (currentPage-1) * rowPerPage 2、相对来说,这种查询速度会慢一些,无论当currentPage大小,嵌套语句查询的结果集都是一样多的,都是整个结果集。但是,当结果集很大时,查询第一页跟最后一页的速度不会有明显变化。select * from(
select rownum r, field1,field2 from table_name
)
where r > (currentPage-1) * rowPerPage and r <= currentPage * rowPerPage当需要进行排序时,以第一种方式进行示例如下:select * from(
select rownum r, a.* from (
select field1,field2 from table_name order by field1
) a where rownum <= currentPage * rowPerPage
) where r > (currentPage-1) * rowPerPage
(select a.*,rownum row_num from
(select * from tabelTest t order by t.id ) a
) b
where b.row_num between (currentPage-1)*pagesize and currentPage*pagesize