Oracle、SQL Server、Access数据库高效果分页技巧 -电脑资料

电脑资料 时间:2019-01-01 我要投稿
【www.unjs.com - 电脑资料】

1、SQL Server、Access数据库

这都微软的数据库,都是一家人,基本的操作都是差不多,常采用如下分页语句:

PAGESIZE:每页显示的记录数

CURRENTPAGE:当前页号

数据表的名字是:components

索引主键字是:id

以下是引用片段:
select top PAGESIZE * from components where id not in
(select top (PAGESIZE*(CURRENTPAGE-1))
id from components order by id)order by id

如下列:

以下是引用片段:
select top 10 * from components where id not in
(select top 10*10 id from components order by id)
order by id

从101条记录开始选择,只选择前面的10条记录

2、Oracle数据库

因为Oracle数据库没有Top关键字,所以这里就不能够像微软的数据据那样操作,这里有两种方法:

(1)、一种是利用相反的,

Oracle、SQL Server、Access数据库高效果分页技巧

PAGESIZE:每页显示的记录数

CURRENTPAGE:当前页号

数据表的名字是:components

索引主键字是:id

以下是引用片段:
select * from components where id not
in(select id from components where
rownum<=(PAGESIZE*(CURRENTPAGE-1)))
and rownum<=PAGESIZE order by id;

如下例:

以下是引用片段:
select * from components where id not in
(select id from components where rownum<=100)
and rownum<=10 order by id;

从101到记录开始选择,选择前面10条,

电脑资料

Oracle、SQL Server、Access数据库高效果分页技巧》(https://www.unjs.com)。

(2)、使用minus,即中文的意思就是减去。

以下是引用片段:
select * from components where rownum
<=(PAGESIZE*(CURRENTPAGE-1)) minus
select * from components where rownum
<=(PAGESIZE*(CURRENTPAGE-2));

如例:select * from components where

以下是引用片段:
rownum<=10 minus select * from components
where rownum<=5;.

(3)、一种是利用Oracle的rownum,这个是Oracle查询自动返回的序号,一般不显示,但是可以通过select rownum from [表名]看到,注意,它是从1到当前的记录总数。

以下是引用片段:
select * from (select rownum tid,components.
* from components where rownum<=100) where tid<=10;

最新文章