sqlserver中可以用top n 的方法,oracle中用 rownum,但如果只用 rownum会随机取数据,如果想按一定顺序取前几条数据 则可这样写: select * from (select列 from 表 where 条件 order by列 desc) where rownum<列数 select * from (select rownum r ,* from test) tt where tt.r 50 and tt.r <= 100; (最好用PLSQL游标来解决) 这样子写是会全表扫描的的,小的表不觉得会有多慢,数据量大了你就知道有多不好了,改成这样就不会了本回答被提问者采纳