Oracle分页SQL

错误写法:
select  a. * , rownum rfrom ( select   *   from  lg_order o  order   by  o.order_id) awhere rownum  <=   20   and  rownum  >=   10


正确写法:

select   * from  ( select  a. * , rownum r           from  ( select   *   from  lg_order o  order   by  o.order_id) a  where  rownum  <=   20 ) bwhere r  >=   10


第一句是错误的,由于rownum是一个总是从1开始的伪列,Oracle 认为这种条件不成立,查不到记录

SQL的执行顺序从内到外,从右到左。

你可能感兴趣的:(Oracle分页SQL)