oracle中rownum的使用Oracle认证考试

文章作者 100test 发表时间 2009:10:07 18:18:28
来源 100Test.Com百考试题网


"tbbnc">

  在Oracle中,要按特定条件查询前N条记录,用个rownum就搞定了。

  0select * from emp where rownum <.= 5

  而且书上也告诫,不能对rownum用">.",这也就意味着,如果你想用

  0select * from emp where rownum >. 5

  则是失败的。要知道为什么会失败,则需要了解rownum背后的机制:

  1 Oracle executes your query.

  2 Oracle fetches the first row and calls it row number 1.

  3 Have we gotten past row number meets the criteria? If no, then Oracle discards the row, If yes, then Oracle return the row.

  4 Oracle fetches the next row and advances the row number (to 2, and then to 3, and then to 4, and so forth).

  5 Go to step 3.

  了解了原理,就知道rownum>.不会成功,因为在第三步的时候查询出的行已经被丢弃,第四步查出来的rownum仍然是1,这样永远也不会成功。

  同样道理,rownum如果单独用=,也只有在rownum=1时才有用。

  对于rownum来说它是oracle系统顺序分配为从查询返回的行的编号,返回的第一行分配的是1,第二行是2,依此类推,这个伪字段可以用于限制查询返回的总行数,而且rownum不能以任何表的名称作为前缀。

  举例说明:

  例如表:student(学生)表,表结构为:

  ID    char(6)      --学号

  name    VARCHAR2(10)   --姓名

  create table student (ID char(6), name VARCHAR2(100)).

  insert into sale values(200001,‘张一’).

  insert into sale values(200002,‘王二’).

  insert into sale values(200003,‘李三’).

  insert into sale values(200004,‘赵四’).

  commit.


相关文章


oracle认证辅导:oracle默认用户名、密码Oracle认证考试
Oracle数据库穿透防火墙实现服务端的连接Oracle认证考试
Windows上Oracle开放防火墙端口问题Oracle认证考试
一个修改Oracle数据库用户密码的小诀窍Oracle认证考试
oracle中rownum的使用Oracle认证考试
有关ORACLE财务系统Oracle认证考试
Oracle数据库数据空间的使用、监控和维护Oracle认证考试
Excel数据通过plsql导入到OracleOracle认证考试
Oracle表空间设计理念Oracle认证考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛