|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
' t9 Z1 h, S" V/ {" C# S2 p3 y
9 @0 f' B% t$ l
使用oracle数据库查询数据时,每页展示数据有限,大部分情况下需要分页展示。如每页显示10条,一页一页查询出来。下面就来介绍下oracle分页实现
. c% S3 r2 C7 T% R: M1 J8 z1
0 f0 ?) C9 X% N; V使用T_BASE_PROVINCE表作为测试演示使用,表字段如下
, Y+ w6 u5 g" y2 r7 N# c- U( \ID NUMBER(11,0), F+ \/ t- _ M9 ~. [1 Z) k
PROVINCEID VARCHAR2(6 BYTE)
& c) `# |3 f4 `0 yPROVINCE VARCHAR2(40 BYTE)
8 R0 A. U8 r" K0 Y o( A数据可以根据自己的需要,插入一定量的测试数据4 U/ j: v3 q- C; e
oracle如何实现分页
q$ f( y' Y! W. C8 e- L; g27 n4 X. u/ V$ j4 E
查询下总共数据量; l" T/ k9 f$ J1 V
select count(*) from T_BASE_PROVINCE;6 _: M& O4 z7 O( ~- n+ N
在分页的时候,一般会显示总页数,需要先查询总数据量得到总页数,总页数=总量/每页显示记录数. [. C: q. ~% r# m! r
oracle如何实现分页
1 _/ y; {5 e5 i* {) A9 H3
8 m& r1 R/ J+ [' B# M前面的测试数据初始化完成之后,查询前20条大概有什么样的数据
2 h# l# u9 l% r4 Z. d% R. v7 noracle如何实现分页% u* [: k1 w- O& @; g) U$ m
4
9 ^! j! Q/ z" \分页语句一:含order by排序,多一层嵌套,因为order by在select之后执行,不在里面写的话可能会出现不是预期的排序结果9 q: u" `! M- V) B
select *
. j8 j- a1 V0 x8 p( ?' zfrom (select t.*, rownum rn" y. F& V+ A9 u# X! T
from (select *
; s1 O# K/ N8 K7 [) {7 ~ [ from T_BASE_PROVINCE$ ^% [% K2 l d
order by id asc) t& n$ ]( }& f a! a/ U
where rownum <= 20)6 Y3 s) E: s9 [+ b& P b. G t
where rn > 10;
0 w/ o, V% B% a9 goracle如何实现分页6 `1 G3 h1 C6 _+ K# C) G* S
5
3 E' z4 u9 |% M分页语句二:如果不需要排序,可以使用如下语句
+ g* e2 j3 G: ?' Sselect a1.*
5 ?+ d" O' {' Q3 }from (select t.*,rownum rn
2 |# B9 \% E" [4 D+ P- k from T_BASE_PROVINCE t # p f1 k: E9 S. M0 }
where rownum <=20) a1
8 X. H A7 g9 q2 Swhere rn >10;
9 |! o: B+ L$ ?. y' o! Qoracle如何实现分页$ T; B8 ]" l- ^" i( ?
6
w! N, {* c' [- \; U; C! M$ x分页语句三:between and方式,性能没有上面的高,但写法简单3 n# y: P& p! n5 p, b0 P
select a1.* `& Z% F9 p: t2 g
from (select t.*,rownum rn from T_BASE_PROVINCE t) a1
8 h' A! |2 W5 r+ e" Fwhere rn between 11 and 20;
* Z3 @" M0 V2 x5 D7 Aoracle如何实现分页
/ C/ g2 O% y2 R2 w7& P9 m$ g {) H& t0 m
通用分页格式,page是页码,size是每页显示条数' U6 C0 M2 o& Q5 d
select * * e# Y$ Y0 c' n/ U; E9 L4 e
from (select t.*, rownum rn {$ _% }* d( j m: b/ [6 b7 I
from (select *' _0 z) r1 O r$ K
from T_BASE_PROVINCE! _# v7 P9 n3 `; [: D# ^' U2 B
order by id asc) t" [* q* ?% N: N( P% U3 H- H
where rownum <= page*size)4 J' d. x1 w0 Q; T
where rn > (page-1)*size;
! p( O, W( `' {& N& z/ G5 ?0 |* z; v' |. O' E
|
|