1.给12个id按升序排序,取出排序后的前5个id。
Oracle中的rownum的是在取数据的时候产生的序号
(注:下面结果中,id是已经按照升序排序的)
ROWNUM ID
---------- --------------------
9 20111028094601201693
8 20111028094601888130
10 20111028094605946169
4 20111028094605984087
7 20111028110758617803
11 20111028110758930318
1 20111031064620139463
2 20111031070024670965
3 20111031072450370812
5 20111101112559541615
12 20111101112605330425
6 20111101112605775938
可以看出,rownum并不是按照id列来生成的序号。系统是按照记录插入时的顺序给记录排的号,rowid也是顺序分配的。为了解决这个问题,必须使用子查询: