oracle中rownum和rowid的区别
rownum和rowid的区别总括:
rownum和rowid都是伪列,但是两者的根本是不同的。
rownum是根据sql查询出的结果给每行分配一个逻辑编号,所以你的sql不同也就会导致最终rownum不同,
直接用rownum查找的范围必须要包含1;因为rownum是从1开始记录的,当然你可以把rownum查出来后放在一个虚表中作为这个虚表的字段再根据条件查询
但是rowid是物理结构上的,在每条记录insert到数据库中时,都会有一个唯一的物理记录 。
- rownum分页:
- rowid去重,主键仍唯一,仅去掉名字和年纪一样的重复学生:
SELECT a.rowid,a.* FROM student a
WHERE a.rowid NOT IN
(SELECT MAX(b.rowid) FROM student b WHERE a.sname = b.sname AND a.sage = b.sage);
上面这条sql语句因为 源和目标 交叉着一起查询,理解会有困难.
中文释意(从内层select开始理解):
1.从studnetA表中开始查找和studentB表中同样名字和同样年纪的学生.
2.把这些同样名字的学生的最大rowid找出来.
3.从studentA表中查找不在最大rowid范围内的那些学生.
真正使用的去重语句为:
DELETE FROM student a
WHERE a.rowid NOT IN
(SELECT MAX(b.rowid) FROM student b WHERE a.sname = b.sname AND a.sage = b.sage);
rowid的更详细参考资料:
oracle中rownum和rowid的区别的更多相关文章
- oracle中rownum和rowid的区别【转】
rownum和rowid的区别总括: rownum和rowid都是伪列,但是两者的根本是不同的. rownum是根据sql查询出的结果给每行分配一个逻辑编号,所以你的sql不同也就会导致最终rownu ...
- Oracle中rownum和rowid的理解
rownum,rowid都叫伪列. 但是,rownum是逻辑上的编号,且其值总是从1开始,每行的rounum不是固定的.而rowid是“物理”编号.若数据库文件没有移动,则每行的 rowid一般是固定 ...
- Oracle中rownum和rowid的理解(转)
本文转自地址http://www.linuxidc.com/Linux/2012-04/58300.htm rownum,rowid都叫伪列. 但是,rownum是逻辑上的编号,且其值总是从1开始,每 ...
- ORACLE 中rownum和row_number()的使用区别(可指定取sql结果集的第几个数据)
这篇文章主要介绍了oracle中rownum和row_number()的使用方法以及区别和联系,十分的详细,有需要的小伙伴可以参考下. row_number()over(partition by ...
- oracle中rownum和row_number()
row_number()over(partition by col1 order by col2)表示根据col1分组,在分组内部根据col2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内 ...
- ORACLE 中ROWNUM用法总结(转)
ORACLE 中ROWNUM用法总结! 对于 Oracle 的 rownum 问题,很多资料都说不支持>,>=,=,between...and,只能用以上符号(<.<=.!=) ...
- ORACLE 中ROWNUM用法总结!
ORACLE 中ROWNUM用法总结! 对于 Oracle 的 rownum 问题,很多资料都说不支持>,>=,=,between...and,只能用以上符号(<.<=.!=) ...
- Oracle中rownum的基本用法
Oracle中rownum的基本用法 对于rownum来说它是oracle系统顺序分配为从查询返回的行的编号,返回的第一行分配的是1,第二行是2,依此类推,这个伪字段可以用于限制查询返回的总行数,且r ...
- ORACLE 中ROWNUM
ORACLE 中ROWNUM用法总结! 对于 Oracle 的 rownum 问题,很多资料都说不支持>,>=,=,between...and,只能用以上符号(<.<=.!=) ...
随机推荐
- HDU 5943 Kingdom of Obsession
题意:n个人编号为[s+1, s+n],有n个座位编号为[1,n],编号为 i 的人只能坐到编号为它的约数的座位,问每个人是否都有位置坐. 题解:由于质数只能坐到1或者它本身的位置上,所以如果[n+1 ...
- HTML、html
1.HTTPS(超文本传输协议,HyperText Transfer Protocol) 超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息.HTTP协议以明文方式发 ...
- 'str' object is not callable
>>> b=str(11) Traceback (most recent call last): File "<stdin>", line 1, in ...
- Spring MVC 4.2 增加 CORS 支持 Cross-Origin
基于XML的配置: <mvc:cors> <mvc:mapping path="/api/**" allowed-origins="http://dom ...
- DB2技术点
----定义 DECLARE CC VARCHAR(4000); DECLARE SQLSTR VARCHAR(4000); DECLARE st STATEMENT; DECLARE CUR CUR ...
- JavaScript中的继承(原型链)
一.原型链 ECMAScript中将原型链作为实现继承的主要方法,基本思想是利用原型让一个引用类型继承另一个引用类型的属性和方法. 实例1: function SupType() { this.pro ...
- 自动 点击切换 按钮切换 轮播无缝选项卡 ----原生js
<!doctype html> <html> <head> <meta charset="utf-8"> <meta name ...
- [踏得网]HTML5在线教程阅读进度记录
2017年1月3日18:12:19http://techbrood.com/h5b2a?p=html-canvas-states 2017年1月3日17:10:11http://techbrood.c ...
- Java 应用性能调优实践
Java 应用性能优化是一个老生常谈的话题,笔者根据个人经验,将 Java 性能优化分为 4 个层级:应用层.数据库层.框架层.JVM 层.通过介绍 Java 性能诊断工具和思路,给出搜狗商业平台的性 ...
- json格式的数组长度
var data = [{"id":"1","name":"a"},{"id":"2&qu ...