select * from tab  
order by 1
我想查询前20个 用top怎么用呀

解决方案 »

  1.   

    top是sqlserver中的吧
    oracle中利用rownum去实现
    select * from (select tab.*,rownum rn from tab order by col) where rn<=20 order by col;
    select * from (select tab.*,rownum() over (order by col) rn from tab) where rn<=20 order by col;
      

  2.   

    select * from 
      (select *,rownum rn from tab  
         order by 1 ) a
    where a.rn <= 20
      

  3.   

    top是sqlserver
    oracle:
    select * from 
    (select * from table order by .. desc)
    where rownum<21
      

  4.   

    oracle不用top用rownum就可以了,答案上面的就可以了
      

  5.   

    SELECT * FROM (SELECT * FROM TAB ORDER BY 1) WHERE ROWNUM <= 20;
    SELECT *
      FROM (SELECT *, ROW_NUMBER() OVER(ORDER BY 1) ROWC FROM TAB)
     WHERE ROWC <= 20;
      

  6.   

    看你什么数据库了,如果oracle的话是不能用top的
      

  7.   


    SELECT * FROM (SELECT uo.*,dense_rank() over(order by rownum) rank FROM user_objects uo) WHERE rank<21;
      

  8.   

    select * from table where rownum<=20
      

  9.   

    top是sql server里才有的,在oracle里使用的是ROWNUM,
    SELECT * FROM TAB WHERE ROWNUM<=20
      

  10.   


    觉得特别,但不太清楚rank用法,学习一下
      

  11.   

    如何取top n记录,(使用rownum)
    SELECT * FROM (SELECT id from bb order by id) where rownum <3;取第M条到第N条之间的
    select * 
      from (select id,name,row_number() over(order by id) rn 
              from user) t 
    where t.rn>=4 and t.rn <=6删除M条到第N条之间的记录
    delete from tb1 where rowid in 
    (SELECT rowid  FROM (SELECT rowid,id,VAL,row_number() over (order by VAL) rn from TB1 )  
    where rn >2 and rn<6);
      

  12.   


    select * from tab where rownum>=10为啥不行啊
      

  13.   

    select * from tab  where rn <=20 order by col;  
      

  14.   

    select * from tab  where rownum <=20 order by col;
      

  15.   

    sqlserver中的top:
    select top(20),* from tab order by col;