当柳上原的风吹向天际的时候...

真正的快乐来源于创造

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  368 Posts :: 1 Stories :: 201 Comments :: 0 Trackbacks
Oracle的伪列rownum可以标识一条数据的行号,它常用做分页,起到MySql数据库中limit语句同样的作用。
在使用rownum时,一个要特别注意的地方是Rownum是在查询之后排序之前赋值的,不能用于在一次查询中对行进行限制。要使用rownum对行集进行进行有效控制,必须使用子查询

我们可以先看看下面的数据:


其中已经按照年龄排序完毕。如果这时想用rownum拿出前三条会出现错误结果,图示如下:

明显与预想不符,正确的应该使用子查询来做,如下:
select * from 
         (
          
select t01.*,
                rownum 
as ageOrderNum
          
from  (
                
select ID, NAME, AGE, EMAIL 
                
from employee 
                
order by age
                )  t01
         ) t02
where t02.ageOrderNum<4

查询出来的结果如下:


另外一个查询例子,找出第4,5,6个年龄最小者。
posted on 2008-12-02 15:41 何杨 阅读(384) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: