当前位置: 代码迷 >> Oracle开发 >> rownum的次第和 order by 是否有关
  详细解决方案

rownum的次第和 order by 是否有关

热度:11   发布时间:2016-04-24 06:43:13.0
rownum的次序和 order by 是否有关?
开发中遇到一个问题
当执行 select a.rownum from 表1 order by 字段1时,如果字段1没建索引的话,rownum不是顺序的

------解决方案--------------------

SELECT ROWNUM,A.* FROM
(SELECT * FROM 表1 ORDER BY 字段1)A

------解决方案--------------------
ROWNUM是一种伪列,它会根据返回记录生成一个序列化的数字。利用ROWNUM,我们可以生产一些原先难以实现的结果输出,但因为它是伪列的这个特殊性,我们在使用时也需要注意一些事项,不要掉入“陷阱”。下面就介绍一下它的使用技巧及注意事项。


对于
rownum
来说它是
oracle
系统顺序分配为从查询返回的行的编号,返回的第一行分配
的是
1

第二行是
2

依此类推,
这个伪字段可以用于限制查询返回的总行数,
而且
rownum
不能以任何表的名称作为前缀。

------解决方案--------------------
rownum是查询结果的顺序号,在order by 之前生成。。
所以你排序以后,看到的rownum字段顺序是乱的。。
  相关解决方案