随笔 - 59  文章 - 70  trackbacks - 0
<2009年3月>
22232425262728
1234567
891011121314
15161718192021
22232425262728
2930311234

常用链接

留言簿(5)

随笔分类

随笔档案

搜索

  •  

积分与排名

  • 积分 - 172086
  • 排名 - 338

最新评论

阅读排行榜

评论排行榜

注意:rownum只能用符号(<、<=、!=)。    
                          select   *   from   tablename   where   rownum   !=   10;返回的是前9条记录。    
                          不能用:>,>=,=,Between...and。由于rownum是一个总是从1开始的伪列,Oracle   认为这种条件    
   
  只能用  
  select   *  
  from   table_name  
  where   rownum   <   N  
  minus  
  select   *  
  from   table_name  
  where   rownum   <   M  
   
  就可以选中   M   与   N之间的。  
   
   
   
  rownum是伪列,代表已经查询到的记录的行序号。还未查到的记录是没有rownum的。  
  因此ROWNUM>=1   AND   ROWNUM<=10是可以查到前10条记录但是不能证明  
  ROWNUM>=500   AND   ROWNUM<=600可以查处500~600的501条记录。  
  ROWNUM>=1   AND   ROWNUM<=10在逻辑上相当于ROWNUM<=10  
  正确的方法是:  
  select   *   from   (select   Z_YXJK_DMDH.*,   rownum   as   rid   from   Z_YXJK_DMDH   where   rownum<=600)   where   rid   >   500  
  或者  
  select   *   from   Z_YXJK_DMDH   where   rownum<=600  
  minus  
  select   *   from   Z_YXJK_DMDH   where   rownum<=500  
  在效率上推荐前一种
posted on 2009-03-16 16:59 JasonChou 阅读(1469) 评论(0)  编辑  收藏 所属分类: database

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


网站导航: