|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
/ G4 w& u/ V. R) Z
; u, V8 ~; B& E/ Z2 E3 T f使用oracle数据库查询数据时,每页展示数据有限,大部分情况下需要分页展示。如每页显示10条,一页一页查询出来。下面就来介绍下oracle分页实现: }6 y$ Q) u( w* t: A3 A
1$ w# P- k( I7 _- F" }
使用T_BASE_PROVINCE表作为测试演示使用,表字段如下0 d v+ y" u& w- h2 h/ u
ID NUMBER(11,0)
- E) D- G4 Y; YPROVINCEID VARCHAR2(6 BYTE)) L+ o7 {; F5 X C; X
PROVINCE VARCHAR2(40 BYTE)
, j% l& o, ^0 E. O& V' Y数据可以根据自己的需要,插入一定量的测试数据' y% l3 Y1 n5 V2 k3 f) ]
oracle如何实现分页
% w# x' A8 x; z: ?2
( Y: ^2 ^) A& e5 U查询下总共数据量
- n: I( I% _* \/ U' u! Dselect count(*) from T_BASE_PROVINCE;
' @9 d/ b2 G3 J* d$ @' g1 {在分页的时候,一般会显示总页数,需要先查询总数据量得到总页数,总页数=总量/每页显示记录数. Q/ G; s& N) o! g& U4 h( y& h
oracle如何实现分页
s' Q5 F# Q# E& A, y- o2 O3
$ n- o; K* S$ f c前面的测试数据初始化完成之后,查询前20条大概有什么样的数据$ ]( }- N. a2 l- Q; j% T
oracle如何实现分页
) ~# G4 ?" s- N$ R4; Y5 x V' ~7 R
分页语句一:含order by排序,多一层嵌套,因为order by在select之后执行,不在里面写的话可能会出现不是预期的排序结果
0 w5 Y4 b% W& t. f' Kselect * 5 j* \" H+ q) ?1 H A
from (select t.*, rownum rn
- y' h M- Y" d2 Y$ ]7 n8 K from (select * Z. }( Y0 _9 Y" p0 h9 ?
from T_BASE_PROVINCE" L& z! R7 X! G. R' `; Y" h) s( `
order by id asc) t
; S$ h3 F+ K2 o. C0 h! q) A! ?. f2 z# ` where rownum <= 20)
3 {" i: E& W8 q( ?where rn > 10;
8 ~& G% ^- C$ O0 eoracle如何实现分页
( D j. H6 g0 c/ r8 Z8 b; p. N: \5 ]5
+ o p0 j1 l3 f6 b3 f* Z7 q+ [2 S分页语句二:如果不需要排序,可以使用如下语句
+ L! \# o& A% @select a1.*
0 N2 n4 D( r+ u' tfrom (select t.*,rownum rn 8 v3 k6 n9 K4 {4 i s0 E3 W3 U
from T_BASE_PROVINCE t 4 Q# ]* F' d/ W4 \* P- K
where rownum <=20) a1 / q) D' |+ m0 C
where rn >10;
* f! K2 d( l. t) c' loracle如何实现分页" Z6 I! l0 @. h, b, p) h
6% Y7 C _3 L; q$ @
分页语句三:between and方式,性能没有上面的高,但写法简单
# g. i0 W$ ]0 y$ Eselect a1.*
, m6 x4 B5 S9 J- Qfrom (select t.*,rownum rn from T_BASE_PROVINCE t) a1 , @" P) t& o s! o
where rn between 11 and 20;; v0 K X& F# ~ `4 A" m; |/ d
oracle如何实现分页
7 f0 v) y. S' B2 m% Z% N$ Y7! y- A3 `5 [" S1 h2 l ] D
通用分页格式,page是页码,size是每页显示条数
' @* i2 ]0 g9 N6 jselect *
0 [: K3 ]& x7 w4 e A, Vfrom (select t.*, rownum rn# d$ n& |) R4 F. z
from (select *1 a! r) b; E, _4 U, `6 X; M6 x
from T_BASE_PROVINCE! c0 O5 i. L/ H- o
order by id asc) t
+ \/ d" S! c! G/ o) L+ r* v* h" U$ f where rownum <= page*size)
& r2 h3 L6 \4 k* v4 Y0 {where rn > (page-1)*size;
& ^( c/ M3 F3 ^& E t: ?
6 Z2 J# O( C8 A" g4 Q& X3 m |
|