关闭

JAVA调用Oracle分页SQL用法

216人阅读 评论(0) 收藏 举报
分类:

1.第一种写法

select *from (

selectrownum rm,a.* from (

   selectxs.xh,xs.xbm,cf.xm,cf.qfr,cf.qfrq from cfxxb cf,xsjbxxb xs 

       wherecf.xh=xs.xh and cf.cflx='警告'and cf.xm like '%%'

       orderby qfrq desc 

       

       )  a) where rm between 1 and 10

 

2.第二种写法

SELECT*    

FROM(    

SELECTROWNUM RN,TA.*    

FROM(   

   selectxs.xh,xs.xbm,cf.xm,cf.qfr,cf.qfrq 

       fromcfxxb cf,xsjbxxb xs where cf.xh=xs.xh and cf.cflx='警告' and cf.xm like '%%'

       orderby qfrq desc 

)TA WHEREROWNUM <= 10   

)WHERE RN> 1

 

3.总结

   

    第二种方法在大多数情况拥有较高的效率。分页的目的就是控制输出结果集大小,在上面的分页查询语句中,这种考虑主要体现在WHERE ROWNUM <= 20这句上。

 

    选择第1120条记录存在两种方法,第二种方法正是在查询的第二层通过ROWNUM <= 20来控制最大值,在查询的最外层控制最小值。而第一种方法是去掉查询第二层的WHEREROWNUM <= 20语句,在查询的最外层控制分页的最小值和最大值。 

 

    数据库管理员在优化的时候,第二种情况下优化效果更好。

 

来自 <http://blog.chinaunix.net/uid-122937-id-142970.html

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:3855次
    • 积分:94
    • 等级:
    • 排名:千里之外
    • 原创:4篇
    • 转载:10篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档