SELECT T_ID,T_DATE
FROM (SELECT ROWNUM ID,T_ID,T_DATE FROM TABLE)
WHERE rownum<=1100 AND rownum>1000
ORDER BY T_DATE ASC;
不知道是不是好用?
FROM (SELECT ROWNUM ID,T_ID,T_DATE FROM TABLE)
WHERE rownum<=1100 AND rownum>1000
ORDER BY T_DATE ASC;
不知道是不是好用?
FROM (SELECT T_ID,T_DATE FROM TABLE ORDER BY T_DATE ASC)
WHERE ROWNUM<=1100 and ROWNUM>1000;
from (select rownum id,a.* from yourtable a order by t_date) b
WHERE b.ID<=1100 AND b.ID>1000
from (select rownum ron,a.* from yourtable a order by t_date) b
WHERE b.ron<=1100 AND b.ron>1000
rownum是oracle记录里物理上的行数.不能跟排序放一起用,一起用的话,取出来的内容就不符合要求了.
order by 不能和ROWNUM联用2楼跟我写的一样3,4,5,7楼根本就是错误的SQL语句难道题目真的那么难啊?
from (select rownum ron,a.* from yourtable a order by t_date) b
WHERE b.ron<=1100 AND b.ron>1000
我已测试通过
from (select rownum id,a.*
from (select * from yourtable order by t_date) a) b
WHERE b.ID<=1100 AND b.ID>1000
rownum不是物理记录号,而只是一个伪列,rowid才是物理地址的!如果想去排序后的几条记录,大都是用rownum的!但一定要先order by,然后再用rownum,不要在同一个select ……里面。我后来写的这个肯定可以的!你可以测试一下。
你试试下列语句,我没把握:
select T_ID,T_DATE from (select T_ID,T_DATE from table where rownum<1100 order by T_DATE ASC) minus select T_ID,T_DATE from table where rownum<1000 order bu T_DATE ASC
不但效率低,结果也不是错误的!
不但效率低,结果也是错误的!
from (select rownum id,a.*
from (select * from yourtable order by t_date) a
where rownum <= 1100) b
WHERE b.ID>1000
http://www.cnoug.org/bin/ut/topic_show.cgi?id=38&h=1&bpg=1&age=0
同时,谢谢biti