oracle中取最新的前几条记录(rownum)
对于rownum来说它是oracle系统顺序分配为从查询返回的行的编号,返回的第一行分配的是1,第二行是2,依此类推,这个伪字段可以用于限制查询返回的总行数,且rownum不能以任何表的名称作为前缀。
(1) rownum 对于等于某值的查询条件
如果希望找到学生表中第一条学生的信息,可以使用rownum=1作为条件。但是想找到学生 表中第二条学生的信息,使用rownum=2结果查不到数据。因为rownum都是从1开始,但是1以上的自然数在rownum做等于判断是时认为都是 false条件,所以无法查到rownum = n(n>1的自然数)。
SQL> select rownum,id,name from student where rownum=1;(可以用在限制返回记录条数的地方,保证不出错,如:隐式游标)
SQL> select rownum,id,name from student where rownum =2;
ROWNUM ID NAME
---------- ------ ---------------------------------------------------
(2)rownum对于大于某值的查询条件
如果想找到从第二行记录以后的记录,当使用rownum>2是查不出记录的,原因是由于rownum是一个总是从1开始的伪列,Oracle 认为rownum> n(n>1的自然数)这种条件依旧不成立,所以查不到记录。
查找到第二行以后的记录可使用以下的子查询方法来解决。注意子查询中的rownum必须要有别名,否则还是不会查出记录来,这是因为rownum不是某个表的列,如果不起别名的话,无法知道rownum是子查询的列还是主查询的列。
SQL>select * from(select rownum no ,id,name from student) where no>2;
NO ID NAME
---------- ------ ---------------------------------------------------
3 200003 李三
4 200004 赵四
假如要返回前5条记录:
select * from tablename where rownum<6;(或是rownum <= 5 或是rownum != 6)
注意:只能用以上符号(<、<=、!=)。不能用:>,>=,=,Between...and
1.在ORACLE中实现SELECT TOP N
由于ORACLE不支持SELECT TOP语句,所以在ORACLE中经常是用ORDER BY跟ROWNUM的组合来实现SELECT TOP N的查询。
简单地说,实现方法如下所示:
SELECT 列名1...列名n FROM
(SELECT 列名1...列名n FROM 表名 ORDER BY 列名1...列名n)
WHERE ROWNUM <= N(抽出记录数)
ORDER BY ROWNUM ASC
转载于:https://www.cnblogs.com/JemBai/archive/2011/04/18/2019920.html
oracle中取最新的前几条记录(rownum)相关推荐
- java 选取topn_取Oracle中实现TOPN,选取前几条记录
例1:查询各个部门的MANAGER(经理)中谁的工资最低 hr select * from ( select t1.manager_id as 员工编号,t2.first_name as 员工姓名 ...
- mysql单列去重复group by分组取每组前几条记录加order by排序
<div class="post"><h1 class="postTitle"><a id="cb_post_title ...
- mysql 排序取前4,mysql分组取每组前几条记录(排序)
首先来造一部分数据,表mygoods为商品表,cat_id为分类id,goods_id为商品id,status为商品当前的状态位(1:有效,0:无效). CREATE TABLE `mygoods` ...
- sql 取表的前10条记录,任意中间几行的记录
取表的前10条记录 with a as(select *,row_number()over(order by department)rn from _SucceedStaff ) select * f ...
- 各个数据库的取一表前N条记录不同SQL写法
部分数据库可用用不着,且记下 1. ORACLE SELECT * FROM TABLE1 WHERE ROWNUM<=N 2. INFORMIX c tP'\79] SELECT FIR ...
- mysql分组取每组前几条记录(排序)
首先来造一部分数据,表mygoods为商品表,cat_id为分类id,goods_id为商品id,status为商品当前的状态位(1:有效,0:无效). CREATE TABLE `mygoods` ...
- 茴香豆的n种写法之②——Sql据多个条件 查询每个条件的前N条记录
--------------------------------- -- Author: liangCK 小梁 -- Title : 查每个分组前N条记录 -- Date : 2008-11-13 1 ...
- 不同数据库中查询前几条记录的用法(SQL Server/Oracle/Postgresql)
SQL在不同数据库中查询前几条记录的用法分类 1. orACLE Select * FROM TABLE1 Where ROWNUM<=N 2. INFORMIX Select FIRST N ...
- oracle 取前10条记录
1.oracle 取前10条记录 1) select * from tbname where rownum < 11; 2) select * from (select * from tbnam ...
最新文章
- MySQL 分库分表及其平滑扩容方案
- 专访梅耶·马斯克:硅谷钢铁侠是怎样被炼成的?
- python语言入门p-python语言程序设计基础(第2版)课后答案嵩天
- java apt anno_Android Studio中使用apt
- python整型图_python源码研究之整型对象探索
- [转]浅析DDD(领域驱动设计)
- 有名管道和无名管道的区别
- excel表格行列显示十字定位_WPS表格:Excel表格打印时,如何每页都显示标题行?...
- 【转】云社区 博客 博客详情 二维异形件排版算法介绍(一)
- 【学习笔记】计算机导论之操作系统和文件管理
- 剑指offer 35 第一个只出现一次的字符
- LaTex 论文排版(1): Win10 下 LaTex所需软件安装 (Tex live 2018 + Tex studio)
- 构建简单的智能客服系统(三)——基于 UniMRCP 实现讯飞 TTS MRCP Server
- 泰拉瑞亚服务器config修改,泰拉瑞亚种子世界游戏配置修改教程
- Best practices for a new Go developer
- Java使用aspose生成简历
- 腾讯CEO马化腾:从“抄袭”开始创业之路
- peerDependencies WARNING 警告剖析
- NLP-生成模型-2014:Seq2Seq【缺点:①解码器无法对齐编码器(Attention机制);②编码器端信息过使用或欠使用(Coverage机制);③解码器无法解决OOV(Pointer机制)】
- 翻译系统文本或者其他文本无法直接生成请求号(Request NO)解决方法(T-CODE:SLXT)
热门文章
- php函数设置默认值,php函数如何设置默认值作为对象?
- Xamarin.Forms中为WebView指定数据来源Source
- Xamarin Visual Studio不识别JDK路径
- Arduino Yun快速入门教程(大学霸内部资料)
- 字符转char android,android – 如何在kotlin语言中将char转换为ascii值
- python计算生态的命名_Python计算生态之random库
- python游戏服务器引擎_KBEngine游戏服务器引擎环境配置
- 贵港职称计算机,2015广西职称计算机考试报名:贵港职称计算机报名入口
- 计算机科普知识小动画,4岁嗯哼知识量惊呆杜江!这4部科普启蒙动画,孩子绝对不能错过...
- axios设置text html,axios封装动态设置Content-Type