取m和n之间的:
select * from (select rownum id,tbname.* from tbname) where id between m and n;
select * from (select rownum id,tbname.* from tbname) where id between m and n;
解决方案 »
- AIX 6.1 安装10G(RAC)报syncr inc 32 lvl 2 from 1 rcvd (my inc,lvl: 32, 1)
- 这个怎么做啊!orcal 基础题
- oracle 两张表,根据其一张表的标记,来决定这张表的某个字段取第二张表的值 查询如何实现
- Oracle中如何筛选LONG类型的数据?
- 这段sql该怎么优化?
- 求助 关于cognos做报表
- 请问如何设置一个列(varchar2(20))的默认值为empty,我每次insert后该列都为null.
- 自学ORACLE9I的疑惑
- 我该如何恢复这个数据库呢
- oracle 12中, 将序列纳入事务处理的报错问题。
- 我在xp下装得8i,不知道xp从哪儿看服务啊?谁知道?我看不见管理工具啊?有没有命令查看啊?
- 请教关于oracle权限管理的一个问题。
如果有order的话会很麻烦,
一是8i以下不支持
二是速度因此会变慢
我试了,m的值只能为1,如果不为的话就什么也查不到,这是为什么呢?如果是这样的话,分页显示也不能实现的。
----------
8
SQL> select * from (select rownum nu,forums.* from forums) where nu between 3 and 4; NU FO FORUMNAME NUM
---------- -- -------------------------------------------------- ----------
RENUM MANAGER
---------- --------------------
3 3 健康与性 3
6 欧公 4 4 美丽人生 2
0 杜公
直接select, rownum 无效
=〉
select * from forums where rownum <= 4
minus
select * from forums where rownum <= 3
SQL> select * from (select rownum id,E.* from E) where id between 3 and 6; ID AAA BBB CCC
--------- -------------------- --------- ---------
3 103 3
4 103 43
5 102 5 55
6 aaa 6 6
结帐!
-----------------------
因为rownum不是你表中的字段,而是oracle的一个特殊数据。而且是动态产生的
SQL> select * from testnum; ID NAME SALARY
---------- -------------------- ----------
100 yaojh 6000
400 chenjw 3000
200 hezz 2000
300 luoyx 3000
500 hek 4000
600 test-one 3500
700 test-two 3600
800 test-three 37008 rows selected.
当在where之后不加别的条件时,能返回正确的结果:SQL> select * from (select rownum dd, testnum.* from testnum)
2 where dd >= 3 and dd <= 5; DD ID NAME SALARY
---------- ---------- -------------------- ----------
3 200 hezz 2000
4 300 luoyx 3000
5 500 hek 4000但在加入别的条件时就不成了,请看:
SQL> select * from (select rownum dd, testnum.* from testnum)
2 where salary <= 3000 and salary <= 4000
3 and dd >= 3 and dd <= 5; DD ID NAME SALARY
---------- ---------- -------------------- ----------
3 200 hezz 2000
4 300 luoyx 3000请问这是什么原因????
select * from (select rownum dd, testnum.* from testnum
where salary <= 3000 and salary <= 4000
)where dd >= 3 and dd <= 5;
多谢!
1*********************这是全部数据:
SQL> select * from table2;A B C
---------- ---------- ----------
a sd
sdfs dfd
dfs dfsd
sdfsd fsdf
dfsd sdfs已用时间: 00: 00: 00.10
2*********************这是1和2的:
SQL> select * from table2 where rownum between 1 and 2;A B C
---------- ---------- ----------
a sd
sdfs dfd已用时间: 00: 00: 00.10
这是2和3的,怎么没数据???????
SQL> select * from table2 where rownum between 2 and 3;未选定行已用时间: 00: 00: 00.10
********************这里的rownum没错呀
SQL> select rownum from table2; ROWNUM
----------
1
2
3
4
5