伪列rownum

来源:互联网 发布:淘宝产品发布模板 编辑:程序博客网 时间:2024/05/14 23:20

由于rownum是一个总是从1开始的伪列,所以,不能用:>,>=,=,between...and。如:
SELECT * FROM TABNAME WHERE ROWNUM>2 AND ROWNUM<10
是选不出任何记录的.

在如:
SELECT * FROM TABNAME WHERE ROWNUM !=10
只能选出前9条记录.

如果想选出前十条,可以如下:
SELECT * FROM TABNAME WHERE ROWNUM<=10

如果想选出 5 至 10 条,可以如下:
SELECT * FROM TABNAME WHERE ROWNUM<=10
MINUS
SELECT * FROM TABNAME WHERE ROWNUM<=5
也可用子查询

如果想排序的话,要遵守下面的原则:
要先排序再选则须用select嵌套:内层排序外层选(子查询)。

还要注意一点:ROWNUM是连续的,不能断开.
如:
SELECT * FROM ASP_FA_MAST WHERE ROWNUM IN (4,2,1)
就只能选出前两条,而不会选出第4条.