1.SELECT * 2. FROM (Select ROWNUM AS ROWNO, T.* 3. from k_task T 4. where Flight_date between to_date('20060501', 'yyyymmdd') and 5. to_date('20060731', 'yyyymmdd') 6. AND ROWNUM <= 20) TABLE_ALIAS 7.WHERE TABLE_ALIAS.ROWNO >= 10;
为什么第2行 rownum要用别名rowno?
第3行 k_task 也要用别名 T?
第6行也要用别名TABLE_ALIAS ?为什么下面这样写不行:select * from (select * from work_task where rownum<=10)
where rownum>5
select * from (select * from work_task where rownum<=10)
where rownum>5
直接对前面的结果集取rownum>5是取不到的。
第3行 k_task 也要用别名 T?
第6行也要用别名TABLE_ALIAS ?----------------
1、rownum要用别名rowno,是你子查询中取了前20条数据,产生了一个编号,在外面的条件中用rowno>=10来限定,(这时的rowno是在子查询中已经产生了),所以会过滤出10--20的记录。
2、k_task 也要用别名 T是为了引用方便,简单,可以不用别名。
3、这是对你的子查询起一个别名,也是为了以后引用方便,如果单独对这个子查询操作,也可以不用