关于oracle,有高手帮帮忙么?
来源:百度知道 编辑:UC知道 时间:2024/05/28 19:24:37
select* from book where rownum between 1 and 11
可以查询1到11的,但为什么
select* from book where rownum between 2 and 11
却没有数据呢?
难道用rownum实现不了?
oracle有没有可以像mysql里的 desc limit这样的分页用的??
高手帮帮忙
楼上的不对的!注意使用别名!!
看图说话
SQL> select *
2 from
3 (select rownum,t1.* from t1 order by id1)
4 where rownum between 2 and 11 ;
未选定行
SQL> select *
2 from
3 (select rownum abc,t1.* from t1 order by id1)
4 where abc between 2 and 11 ;
ABC ID1 ID2 ID3
---------- ------- --------- -----
2 a12it1 ababcdad a^^a
5 ba12it abcd1ad a^&^
3 ba12it1 ababcd1ad a^&^a
6 it1 it1 it1
4 it1 ababcd a^^
最好在FROM子查询里面加上排序语句啊,要不分页意义不大,还不如直接用ROWID。
SQL>
select *
from
(select rownum rn, book.* from book)
where rn between 2 and 11
因为rownum 只能从数字1开始,中间也不能有间隔,有2中方法
select * from (select rownum as rn,book.* from book) x where x.rn between 2 and 11
select * from (select row_number()over(order by book的某个字段) as rn,book.* from book) x where x.rn between 2 and 11