PLM之家PLMHome-工业软件践行者

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

[复制链接]

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

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

admin 楼主

2017-11-3 16:22:57

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

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

x
2 X) J( @' t6 y7 l, B
  a2 w5 L* K& V9 ]  ~
使用oracle数据库查询数据时,每页展示数据有限,大部分情况下需要分页展示。如每页显示10条,一页一页查询出来。下面就来介绍下oracle分页实现
  e# X" @7 Z' F& d$ B! b1& |! t0 |0 K" L: J2 Q  w9 Y
使用T_BASE_PROVINCE表作为测试演示使用,表字段如下
- u$ V3 P% j8 O9 `$ r! j2 G* S# [ID        NUMBER(11,0)/ F7 |. S. ?3 b
PROVINCEID        VARCHAR2(6 BYTE)/ b1 K% M, i' K: B7 J
PROVINCE        VARCHAR2(40 BYTE)1 P" M0 E# o6 G4 p
数据可以根据自己的需要,插入一定量的测试数据
" S# u8 i# @1 T% l2 j6 G* F) z2 ^$ \oracle如何实现分页
( ~6 O( ~1 o! k2 T, n8 l  `2. v4 ?6 g0 H1 R
查询下总共数据量
( U5 m8 t  ^  z6 @2 v8 y2 ~select count(*) from T_BASE_PROVINCE;
2 x# L( f/ ~. h4 e" Q在分页的时候,一般会显示总页数,需要先查询总数据量得到总页数,总页数=总量/每页显示记录数, z+ ~! D/ f+ q
oracle如何实现分页
, p. x' q' o2 H1 k2 [; k3
( h7 Q" f2 g$ X+ e& [8 Z/ d前面的测试数据初始化完成之后,查询前20条大概有什么样的数据
. E/ ]# P, r4 F6 [$ Goracle如何实现分页
% r, }6 Q" K% ~& z3 `% @46 t/ t7 m! I# M8 I5 M
分页语句一:含order by排序,多一层嵌套,因为order by在select之后执行,不在里面写的话可能会出现不是预期的排序结果
8 s' _9 S' R6 Dselect * : Y0 J- M3 }8 u# {$ p. ~
from (select t.*, rownum rn
/ x- A; q/ @! N/ i; X, e6 N        from (select *5 W% p. W  R1 z0 K/ U6 ]* |
                from T_BASE_PROVINCE: H6 a& j  G' T0 u$ T8 g
               order by id asc) t; V% a! F5 s1 g. n
        where rownum <= 20)9 C  k& o; i, d) @7 Q$ k) t6 ?
where rn > 10;) h7 C+ ~# a+ }1 k* z" M2 f
oracle如何实现分页+ W2 h5 }. M! U4 x% n3 T2 }. U
51 W, @+ y2 e4 |
分页语句二:如果不需要排序,可以使用如下语句# k' i3 b4 g9 x5 A% D
select a1.* 4 a, L2 X1 i% \: h9 f, L) `
from (select t.*,rownum rn # ?# [" \2 t2 A; q$ Q6 \" g: A
        from T_BASE_PROVINCE t 2 c' a* H7 R5 s3 U5 l9 K
        where rownum <=20) a1 6 M. t; {# Z8 q. B* g$ ?3 d
where rn >10;0 f2 Y! y( z( o% q2 Z, \
oracle如何实现分页; O5 M( k5 I* C, y8 S! {# y$ y, j/ [
6
. B! N  W  Q. l# H分页语句三:between and方式,性能没有上面的高,但写法简单0 s0 H5 q  K& |
select a1.*
! C# d- z8 N8 B; ffrom (select t.*,rownum rn from T_BASE_PROVINCE t) a1
# A- {  y/ \; Swhere rn between 11 and 20;
; K& ]. ~1 b; l# i. [7 H4 moracle如何实现分页$ w9 `; d  l2 u( C
73 D1 I2 T# ?$ z( }
通用分页格式,page是页码,size是每页显示条数
8 S$ Q% q( F* Q0 Dselect * 7 I6 G" G2 D# j- L" ~
from (select t.*, rownum rn8 ]3 d; P+ y# T
        from (select *
1 ]% X. Y  a, K/ w; m                from T_BASE_PROVINCE
5 w) S; t' A" d) @0 ?               order by id asc) t! _' e* A# x5 ]
        where rownum <= page*size)
  e9 ]: ^) L6 q- {- d6 E, nwhere rn > (page-1)*size;
$ D( t' b) A( B+ v" `0 f7 n  C0 k; L6 d8 ^, o
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了