PLM之家精品课程培训,联系电话:18301858168 QQ: 939801026

  • NX二次开培训

    NX二次开培训

    适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术对于老鸟也值得借鉴!.

    NX CAM二次开发培训报名 NX二次开发基础培训报名
  • PLM之家Catia CAA二次开发培训

    Catia二次开发培训

    Catia二次开发的市场大,这方面开发人才少,难度大。所以只要你掌握了开发,那么潜力巨大,随着时间的积累,你必将有所用武之地!

  • PLM之Teamcenter最佳学习方案

    Teamcenter培训

    用户应用基础培训,管理员基础培训,管理员高级培训,二次开发培训应有尽有,只要你感兴趣肯学习,专业多年经验大师级打造!

  • PLM之Tecnomatix制造领域培训

    Tecnomatix培训

    想了解制造领域数字化吗?想了解工厂,生产线设计吗?数字化双胞胎,工业4.0吗?我们的课程虚位以待!

PLM之家PLMHome-国产软件践行者

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

[复制链接]

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

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

admin 楼主

2017-11-3 16:22:57

请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!

您需要 登录 才可以下载或查看,没有账号?注册

x

" H5 H! m: c9 q& }5 K& S+ U' t) Q7 x- I; {) j3 H
使用oracle数据库查询数据时,每页展示数据有限,大部分情况下需要分页展示。如每页显示10条,一页一页查询出来。下面就来介绍下oracle分页实现
+ a6 A: y- D/ d# W* }7 a15 y- Q5 \  q7 f  W8 r9 ~
使用T_BASE_PROVINCE表作为测试演示使用,表字段如下/ l6 @" V" L7 I
ID        NUMBER(11,0)3 M2 h, {7 I2 L, B: i  N
PROVINCEID        VARCHAR2(6 BYTE)
, u) ~& @# ^% o1 v9 ?" xPROVINCE        VARCHAR2(40 BYTE): k" Y/ F& p3 T- k, e9 k: H" V' A2 T
数据可以根据自己的需要,插入一定量的测试数据
  N2 D8 b5 c. Joracle如何实现分页+ W1 ?. K# D! S! g' J5 m
2
' J" `, i+ H( q7 M6 l4 s. S: |查询下总共数据量* U6 j3 U. n4 s: n; C0 \; H
select count(*) from T_BASE_PROVINCE;
7 v8 J' k2 ^" k$ }在分页的时候,一般会显示总页数,需要先查询总数据量得到总页数,总页数=总量/每页显示记录数+ H: b: O1 G# C/ E
oracle如何实现分页
' J& U' t& r3 d! C3, \% L0 o# e3 r3 ?( @4 n) G; _8 O
前面的测试数据初始化完成之后,查询前20条大概有什么样的数据3 ^0 q; @' P9 x; B1 n; K5 n' O
oracle如何实现分页. u8 `$ g& S! M) x! a
4, h* j3 j. r+ F+ q  E5 U. Z
分页语句一:含order by排序,多一层嵌套,因为order by在select之后执行,不在里面写的话可能会出现不是预期的排序结果
3 H; F1 V: D2 L$ A+ D- ?& |select *
0 _0 t# f5 B. z& `- Afrom (select t.*, rownum rn
" Y9 y/ b' d* ~& x        from (select *
8 N- m% \' P- @1 Q2 b0 Q) ?; I& M                from T_BASE_PROVINCE2 P2 ^/ J/ z% g2 H& D, Y
               order by id asc) t
. Y- B8 a. v; R% O        where rownum <= 20)
" Q  b% X, a" ywhere rn > 10;. `) c' t3 _: E+ U
oracle如何实现分页
! R  ]8 z* k7 f! U! i1 ^5
# H0 a9 u! Z' c分页语句二:如果不需要排序,可以使用如下语句
' n1 v4 L! V. n3 h+ uselect a1.* 4 N7 a" P1 g" R; v
from (select t.*,rownum rn   B# H7 W6 A/ a4 m3 @) Y: Z
        from T_BASE_PROVINCE t 9 h; s7 N: o3 Y7 ^: S: Z$ }# n
        where rownum <=20) a1
  P  N7 A6 D# |7 D$ Nwhere rn >10;
, F$ s) y( _4 Q3 g: yoracle如何实现分页
0 f% k4 e1 b6 ]1 S2 u& @  d6  ]9 `: q/ b. n- J3 ^
分页语句三:between and方式,性能没有上面的高,但写法简单
6 G7 Y5 M  m0 f7 X: Hselect a1.* 1 h3 C0 v# l9 s
from (select t.*,rownum rn from T_BASE_PROVINCE t) a1 3 B: T; j0 Q1 `# s7 s5 }7 Y3 s
where rn between 11 and 20;9 f% @4 I  ?: p/ C- ~3 a. x/ a
oracle如何实现分页
( |/ S5 H8 V- w. x, U  C: J) F7. B2 \. O3 H4 V& |% I% I% s6 u
通用分页格式,page是页码,size是每页显示条数% b8 L, J& C- h6 w0 |
select * * ^: T, H8 L0 x1 e$ a; Z+ Z- r: S
from (select t.*, rownum rn
" \3 C" Y% V3 F$ a; w! [! }/ j  K% Y        from (select *
4 _- K; o' @# W" A% i/ B                from T_BASE_PROVINCE( N9 a  o$ {% I8 S6 ]7 E! [6 o+ w$ b
               order by id asc) t
: s% a) a5 U5 B7 g- \1 Y        where rownum <= page*size), `% D& }4 i) N8 ^+ P
where rn > (page-1)*size;
6 x1 D# c& i5 a0 o, x  H( J' j9 b2 U; J" \5 _- r
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

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

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

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

    我知道了