oracle取前几条数据语句

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游标来解决)

这样子写是会全表扫描的的,小的表不觉得会有多慢,数据量大了你就知道有多不好了,改成这样就不会了
select t.*,rownum r from test t where r>50 and r<=100

你可能感兴趣的:(oracle,sqlserver)