开发中遇到一个问题
当执行 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字段顺序是乱的。。