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 2725 0

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

admin 楼主

2017-11-3 16:22:57

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

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

x

3 V) ]5 t. J+ i  I6 S% h
" ]. U! ]/ d" V) m% C) M* H0 N使用oracle数据库查询数据时,每页展示数据有限,大部分情况下需要分页展示。如每页显示10条,一页一页查询出来。下面就来介绍下oracle分页实现; N" ~$ w0 u& r
1
7 S0 Q% d7 S! `7 c! ]# ~7 B使用T_BASE_PROVINCE表作为测试演示使用,表字段如下+ s" }( r. L  E* w+ \
ID        NUMBER(11,0)* _8 v- }, X" `' x0 w7 P6 M
PROVINCEID        VARCHAR2(6 BYTE)
" _5 q2 \$ k( o& a5 O/ ?PROVINCE        VARCHAR2(40 BYTE)8 w" I6 N- K3 _5 u' s0 \
数据可以根据自己的需要,插入一定量的测试数据
9 U8 V" [4 h1 F- _9 C. t& roracle如何实现分页6 l; \; \" E# v4 o" I# E
2
. M5 L) s2 U1 s& q* c查询下总共数据量
' N, W, E. x3 B/ P  g, c  G; Xselect count(*) from T_BASE_PROVINCE;
- k7 l9 }' J6 ?( D$ N3 ^在分页的时候,一般会显示总页数,需要先查询总数据量得到总页数,总页数=总量/每页显示记录数& D, p1 d( {5 c# ]( b- s/ V8 u
oracle如何实现分页9 e, F4 K" E0 {. ]
3
0 t( S3 u4 `9 Q, H' }! e$ w1 [* l前面的测试数据初始化完成之后,查询前20条大概有什么样的数据
/ K2 C) c- ^# t& U2 A% v# ^, X, eoracle如何实现分页! _! y7 E9 x9 F% g3 V" L7 _3 y; I0 e% l
40 D$ \, @8 t3 J* I
分页语句一:含order by排序,多一层嵌套,因为order by在select之后执行,不在里面写的话可能会出现不是预期的排序结果
: U9 e6 s0 ^# G4 _select *
2 I: B1 R: I1 ifrom (select t.*, rownum rn) I9 B8 n  C* Z9 g; {
        from (select *8 X& t  b$ `  B+ ?5 ]. V
                from T_BASE_PROVINCE
9 X: i& B* P% G               order by id asc) t4 U0 Z: p) h" I; ^% ]5 o% D
        where rownum <= 20)* \- }/ J' P/ F! f: _4 W( p
where rn > 10;
1 m2 B$ f7 |  z6 ]2 poracle如何实现分页' n5 s: ~4 \/ U; p* _$ f
59 @! o, F# w0 `$ `3 a
分页语句二:如果不需要排序,可以使用如下语句
: I, X2 P7 l! W1 Xselect a1.* & F% M8 x2 i; K# z4 I' l# h
from (select t.*,rownum rn 3 ^& s: P- n$ i6 \' |; j9 {! `! i, x  g8 i# h
        from T_BASE_PROVINCE t
' z, F/ o; P8 p/ {- Q! S, y0 d: A        where rownum <=20) a1 + b2 I0 |1 t* R; Q8 b6 a* t: X
where rn >10;
  ~! M0 o4 t, E/ w5 V" {  uoracle如何实现分页
, q" v8 j/ {8 `! x. L6
0 c1 Q% H" c8 V' U9 c4 z% W2 A分页语句三:between and方式,性能没有上面的高,但写法简单
1 `& M$ p8 R' @8 Z- ~select a1.* ; _' ^- ?. Q5 A
from (select t.*,rownum rn from T_BASE_PROVINCE t) a1
4 [+ M7 @# Q4 c" Zwhere rn between 11 and 20;" \- `: \/ j( P' [  ]# |( J
oracle如何实现分页/ Z5 T8 S) Z: N5 x
75 d- Z& S. ]' f) R9 s( n
通用分页格式,page是页码,size是每页显示条数
# H. i- K8 x# G6 [3 C$ Dselect *
5 b3 @- _* ^- h  jfrom (select t.*, rownum rn
$ @4 n- a: I. X        from (select *
& J9 N, I6 f' o, p: @* A$ }, v                from T_BASE_PROVINCE
2 i7 G$ d9 {: k9 ]( ]- `( _; n               order by id asc) t
$ x; H1 F2 |; J1 C! d        where rownum <= page*size)4 x6 O1 M( X8 C& f3 _
where rn > (page-1)*size;2 i# C- u( ~! M5 V1 u
1 Q* h: k& G8 F# [( x
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了