|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
8 k: V' |: C; u3 t L8 i) x
6 d* S6 `# J( w/ J& t( H9 \3 M
使用oracle数据库查询数据时,每页展示数据有限,大部分情况下需要分页展示。如每页显示10条,一页一页查询出来。下面就来介绍下oracle分页实现
7 W: v( `( c8 L6 @1
1 a% v& |5 L* T; |: x/ P, `使用T_BASE_PROVINCE表作为测试演示使用,表字段如下8 \& H2 M8 W4 ^! c! r! B
ID NUMBER(11,0)
5 h5 e! |" t$ pPROVINCEID VARCHAR2(6 BYTE)% N2 O1 t- c0 U7 s- y, V
PROVINCE VARCHAR2(40 BYTE)
7 C/ f9 k6 V& R数据可以根据自己的需要,插入一定量的测试数据. A. \) ]/ z& Z. P6 r T/ b
oracle如何实现分页
' {+ ]6 C8 T: @1 q7 q9 i% u2
# z; X$ u. z6 T; f1 r查询下总共数据量9 I# ^' c, c" E
select count(*) from T_BASE_PROVINCE;, s" Y+ k. z! o+ z
在分页的时候,一般会显示总页数,需要先查询总数据量得到总页数,总页数=总量/每页显示记录数
7 z/ R3 _3 F$ V+ B) @' @oracle如何实现分页
: K0 O& E, E9 p/ Y9 e3: s8 }/ Z7 n! `8 d. r: \* H
前面的测试数据初始化完成之后,查询前20条大概有什么样的数据
1 J" G b% v4 d* Eoracle如何实现分页0 K# w N& y8 \" T9 D0 b; \/ b
4" N9 c6 |1 g7 m& ]9 A2 e2 T
分页语句一:含order by排序,多一层嵌套,因为order by在select之后执行,不在里面写的话可能会出现不是预期的排序结果% ~) m/ c6 s: Q, v% i) m. p1 f
select * ^: e5 A; _. p# X" }
from (select t.*, rownum rn# B/ ^2 u8 H# Y; S* ^+ `9 \ T
from (select ** e0 M; [2 J/ S, q
from T_BASE_PROVINCE, u3 `7 N1 i4 s% H7 L' p. G0 m
order by id asc) t" Z( O; v3 e9 q
where rownum <= 20)8 Q6 n( f: \" B* [: J$ X9 N& o3 |
where rn > 10;
! B! p9 r2 d. k& b+ X3 b8 xoracle如何实现分页9 e6 x. F9 B P; i$ a% |
53 J c5 M" ]. \
分页语句二:如果不需要排序,可以使用如下语句* z) o4 p8 }, l2 \- J: \. M
select a1.*
" i3 e0 t9 I8 Y% Gfrom (select t.*,rownum rn
" l- `+ R% W$ ?" U, w from T_BASE_PROVINCE t 6 D D# s/ T; s0 a$ ~
where rownum <=20) a1
0 `7 p# a) p2 M ~8 Ewhere rn >10;; Z/ O, E$ s; j. I
oracle如何实现分页0 j8 h2 m5 Z |8 w7 w
6
+ x* N. S- K8 V$ _ l分页语句三:between and方式,性能没有上面的高,但写法简单5 G. `7 y& y8 `" x' w% \- {
select a1.*
( }( ^. P) g" n* V( vfrom (select t.*,rownum rn from T_BASE_PROVINCE t) a1 ; P- O' i! S; k- I# d) y
where rn between 11 and 20;4 q/ d& P4 Y7 @3 ?
oracle如何实现分页' C9 j3 l# k* W# h* Q2 _
7
$ A9 V. ~/ @! u通用分页格式,page是页码,size是每页显示条数3 I4 C$ i! u& P/ n3 D* w" Z: l
select *
3 E2 {2 h `+ {+ Mfrom (select t.*, rownum rn. M" ]' P/ \7 n1 i( G* q
from (select *
% F1 t7 O3 z' F# T* V; u- l from T_BASE_PROVINCE
_+ K9 K, ^' h% Q3 P0 E) P( I order by id asc) t
5 p' E; P3 C0 l* Y' r) R, } where rownum <= page*size)
3 F- s8 G1 F3 u5 Ewhere rn > (page-1)*size;" e0 `' N3 ?1 i& c4 Z! n
. u: I" m% A, y/ }
|
|