select * from (select rownum as rid,t.* from aa where rownum >n) t where rid<m
select * from (select rownum as rid,aa.* from aa where rownum >n) t where rid<m
TO dy_yong(祥子) 你的SQL有点问题呵, select * from (select rownum as rid,aa.* from aa where rownum <n) t where rid>m 子查询里应该是小于,外查询才是大于。 但这种写法还有缺陷,如里子查询当中有order by 语句的话,就不好使了。 下面这种写法是可以排序的SELECT * FROM (SELECT ROWNUM AS MY_ROWNUM, TABLE_A.* FROM ( select * from 表名 ORDER BY 日期 desc) TABLE_A WHERE ROWNUM<10) WHERE MY_ROWNUM>=5;
多谢楼上各位的回答,正是我想要的,但还有一个问题:我要用下面的语句实现,因为数据表是个输入参数,即指不定查询哪个表,所以表中的具体字段也就不清楚,所以用*号取出全部字段,但就会出现一个问题:查询结果多中会多出一个page字段,请问如何去除?select * from (select trunc((rownum - 1) / '||pagesize||') + 1 page, tbn.* from '||tbname||' tbn) where page = '||pageno;
看你的语句改为下边的也应该行吧。 select tbn.* from '||tbname||' tbn) where trunc((rownum - 1) / '||pagesize||') + 1 = '||pageno;
soniczck(城市农作物) 说的不行哦,返回未选定行
实在不行,就把那个*替换字段名称,取原表的字段名 select column_name from user_TAB_COLUMNS where table_name=tbname 把遍历到的所有column_name组成那个*号
(select rownum as rid,t.* from aa
where rownum >n) t
where rid<m
(select rownum as rid,aa.* from aa
where rownum >n) t
where rid<m
你的SQL有点问题呵,
select * from
(select rownum as rid,aa.* from aa
where rownum <n) t
where rid>m
子查询里应该是小于,外查询才是大于。
但这种写法还有缺陷,如里子查询当中有order by 语句的话,就不好使了。
下面这种写法是可以排序的SELECT * FROM
(SELECT ROWNUM AS MY_ROWNUM, TABLE_A.* FROM
( select * from 表名 ORDER BY 日期 desc) TABLE_A
WHERE ROWNUM<10)
WHERE MY_ROWNUM>=5;
select tbn.* from '||tbname||' tbn) where trunc((rownum - 1) / '||pagesize||') + 1 = '||pageno;
select column_name from user_TAB_COLUMNS where table_name=tbname
把遍历到的所有column_name组成那个*号
你厉害的。赫赫。
或者是Key