当前位置:  开发笔记 > 数据库 > 正文

什么是rowID&rowNum(ROWID vs ROWNUM)

如何解决《什么是rowID&rowNum(ROWIDvsROWNUM)》经验,为你挑选了1个好方法。

我想知道rowID和之间的区别rowNUM

以及如何在我们的表中看到这两个.

当我执行这个:

SELECT * FROM emp WHERE rownum=1

它返回一个查询,但是当我对rowid执行相同操作时,它说

不一致的数据类型:预期ROWID获得NUMBER

甚至在某些表中,rownum返回null.为什么这样?

请澄清一下:rowid vs rownum?(演示查询)

谢谢

编辑:需要使用别名来显示ROWIDROWNUM(因为它们是伪列),如:

SELECT rownum r1, rowid r2 FROM emp



1> blckbird..:

rownum和rowed都是伪列.

ROWID

对于数据库中的每一行,ROWID伪列返回行的地址.

一个示例查询将是:

SELECT ROWID, last_name  
   FROM employees
   WHERE department_id = 20;

有关rowid的更多信息,请访问:https://docs.oracle.com/cd/B19306_01/server.102/b14200/pseudocolumns008.htm

ROWNUM

对于查询返回的每一行,ROWNUM伪列返回一个数字,表示Oracle从一个表或一组连接行中选择行的顺序.选择的第一行的ROWNUM为1,第二行的数量为2,依此类推.

您可以使用rownum限制结果量,如下所示:

SELECT * FROM employees WHERE ROWNUM < 10;

关于rownum的更多信息:https://docs.oracle.com/cd/B19306_01/server.102/b14200/pseudocolumns009.htm

区别

rowid和之间的实际差异rownum是,rowid是该行的永久唯一标识符.然而,rownum是暂时的.如果更改查询,则rownum编号将引用另一行,而rowid则不会.

因此ROWNUM是一个连续的数字,仅适用于特定的SQL语句.相反,ROWID是一行的唯一ID.

推荐阅读
家具销售_903
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有