oracle中分页的知识
一:前言
自从出来实习后,基本上都没有按下心来总结下自己学的知识点,刚刚好现在快要国庆了,没有到深圳出差,在公司呆了三天,可以说是在公司打了三天的酱油啊,所以前两天都是在看些正则的文档,并且写了下总结(等到要写的时候才觉得好像也没什么要写的啊),所以还是一点一点的写吧,因为五月份的实习知识点自己也做了总结,但是一直都没有具体分开加载到博客园,我自己还是觉得好记性不如烂笔头啊。
二:oracle的rownum
(1)在我刚刚出来时候觉得分页很难搞,现在也学了这么久,但是我自己觉得还是有点难度,可能是自己没有偶真的去理解的吧,对于rownum,刚刚开始用的是时候就是提取一定范围的数据,也可以用between····and来做,下面都会进行具体说一下。
(2)rownum
对于oracle来说,我们查询一条数据,条件是rownum小于10
select id,bh,xm,xb from t_table where rownum<10
这条语句是可以查询到数据的。
但是如果你的条件是查询的条件是rownum>10;如果直接写如下
select id,bh,xm,xb from t_table where rownum>10
这条sql语句是查询不到数据的。
所以我上网查了下,都说的是oracle支持rownum<m(m为大于1正整数)即是该条件是成立的,而对于rownum>m(m为正整数)来说是不支持的,即是该条件是不成立的,所以就没有数据。如果要查询大于多少多少,必须要进行子查询才行,下面具体举列子说说。
我现在要查询的10<rownum<100的数据,那么我们一步步的写如下:
第一步:查询rownum小于100的数据
select id,bh,xm,xb from t_table where rownum<100
下一步我们就是想查询大于10-的数据,如果你这样写那么就不会查询到数据
select rownum, id,bh,xm,xb from (select id,bh,xm,xb from t_table where rownum <100) where rownum>10
有可能不看到网上说需要给rownum命个别名如下:
select rownum rn, id,bh,xm,xb from (select id,bh,xm,xb from t_table where rownum <100) where rn>10
这样的话会报错,“rn标识符无效”,是由于查询的条件必须是表中的数据,用别名的话是不行的。
比如:
select a.id as gg from t-table a where gg =1;
本条sql也是会报错的,因为where后面的条件必须是数据库中有的字段名或者是子查询出来的数据中包含的字段
在写句正确的如下
select a.id from t_table a where id=1; select bh from (select a.id as gg ,a.bh from t_xx a) where gg =1;
所以那么这里就应该懂了该如何写
还有一点要注意:就是rownum必须要用别名,如果不用的话查询不到数据,因为rownum不是某个表的列,不用别名的话就不知道是子查询中的还是主查询中的列了
select id,bh,xm,xb from(select rownum , id,bh,xm,xb from (select id,bh,xm,xb from t_table where rownum <100) )) where rownum>10
所以最终的查询语句应该是这样的:
select id,bh,xm,xb from(select rownum rn , id,bh,xm,xb from (select id,bh,xm,xb from t_table where rownum <100) )) where rn>10
三:总结
算是写完了,以后自己想不明白时就可以多看看了。其实有时候静下心来时想想一些自己以前想不通的地方还是有好处的。这里的记载主要是提醒自己在写子查询语句时要注意字段的用于的范围。谨记谨记!!!
oracle中分页的知识的更多相关文章
- 对于Oracle中分页排序查询语句执行效率的比较分析
转自:http://bbs.csdn.net/topics/370033478 对于Oracle中分页排序查询语句执行效率的比较分析 作者:lzgame 在工作中我们经常遇到需要在Oracle中进行分 ...
- Oracle中分页查询语句
Oracle分页查询语句使我们最常用的语句之一,下面就为您介绍的Oracle分页查询语句的用法,如果您对此方面感兴趣的话,不妨一看. Oracle分页查询语句基本上可以按照本文给出的格式来进行套用.O ...
- oracle中分页函数写法
1.常见的分页查询语句: 查询21到40条之间的数据:SELECT *FROM (select UI.*,ROWNUM RN FROM (select * from user_info) AWHERE ...
- Oracle中分页查询和联表查询
1.使用ROWNUM伪列查询 1.1.查询十条数据(rownum<=n) SELECT ROWNUM,A.* FROM v_sjjx_unit_info A WHERE ROWNUM<=1 ...
- Oracle中分页查询语句的写法
要动态的变化分页查询的条件,比如pageNow 这个变量表示的是当前是第几页, oracle分页有通用写法,假设一页5行 select * from ( select t.*,rownum rn fr ...
- Oracle中经典分页代码!
在Oracle中因为没有top关键字,所以在sqlserver中的分页代码并不适用于Oracle,那么在Oracle中如何来实现分页呢? --查询所有数据 STUNO STUNAME STUAGE S ...
- [转]Oracle中使用Rownum分页详细例子
原文地址:http://www.jb51.net/article/52272.htm 在MySQL中,我们通常都使用limit来完成数据集获取的分页操作,而在Oracle数据库中,并没有类似limit ...
- Oracle中的SQL分页查询原理和方法详解
Oracle中的SQL分页查询原理和方法详解 分析得不错! http://blog.csdn.net/anxpp/article/details/51534006
- ORACLE中的TOP-N查询(TOP-N分析)、分页查询
TOP-N查询(TOP-N分析):就是获取某一数据集合中的前N条记录,实际应用中经常用到. Oracle中不支持SELECT TOP语句(MySQL中也没用此语句),需要借助ROWNUM伪列来实现TO ...
随机推荐
- 为WPF中DropShadowBitmapEffect提供轻量级的替代品
原文:为WPF中DropShadowBitmapEffect提供轻量级的替代品 为WPF中DropShadowBitmapEffect提供轻量级的替代品 ...
- P2419 [USACO08JAN]牛大赛Cow Contest
P2419 [USACO08JAN]牛大赛Cow Contest 题目背景 [Usaco2008 Jan] 题目描述 N (1 ≤ N ≤ 100) cows, conveniently number ...
- java实现单个或多个文件的压缩、解压缩 支持zip、rar等格式
代码如下: package com.cn.util; import java.io.BufferedInputStream; import java.io.File; import java.io.F ...
- [转]Android UI 自动化测试
介绍 Android测试支持库包含UI自动化模块,它可以对Android应用进行自动黑盒测试.在API Level 18中引入了自动化模块,它允许开发者在组成应用UI的控件上模仿用户行为. 在这个教程 ...
- 数据结构-排序-shell排序
shell排序 首先,希尔排序适用于待排序列关键有序. 接下来一步步图解SHELL排序 我为了方便理解内部操作.我先把代码输出整理下. #include<iostream> #includ ...
- npm无法安装全局web3的问题
- 小程序开发时PC端调试返回结果和手机端IOS不一致问题
IOS11登录时遇到一个请求与PC返回不一致情况, 在小程序调试时IOS上始终没有wx.request() 不能发送请求 尝试解决方法 打开微信小程序调试的设置, 将TLS设为可信任的域名 设置 -- ...
- SPOJ 375 Query on a tree(树链剖分)(QTREE)
You are given a tree (an acyclic undirected connected graph) with N nodes, and edges numbered 1, 2, ...
- windows下连接hadoop运行eclipse报错Permission denied:
这是权限问题,试了一下同时也不能在hdfs创建文件夹. 解决: 修改如下hadoop的配置文件:etc/hadoop/hdfs-site.xml,如没有的话可以添加上. <property> ...
- Mac下安装OpenCV问题
最近看了纹理特征方面的paper,看了一些资料之后,想要实际动手实现一下其中LBP算法,果然OpenCV中已经实现. 问题 No module named "cv2" 当我在我们项 ...