PLM之家PLMHome-工业软件与AI结合践行者

[转载电子书] Oracle 实现分页查询!

[复制链接]

2017-11-3 16:22:57 3095 0

admin 发表于 2017-11-3 16:22:57 |阅读模式

admin 楼主

2017-11-3 16:22:57

请使用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
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了