Select id from DBTable where rowid<=10;

解决方案 »

  1.   

    oracle也可以使用动态sql,使用pl/sql块执行execute immediate
      

  2.   

    execute immediate 'Select id from DBTable where rowid<=10;'
      

  3.   

    在使用oracle的top 10的时候可能会用到嵌套进行查询,因为rownum如果和where字句中其他条件一起作用时会出现问题,因为oracle是先取到信息,然后排序的,如果rownum要在oracle排序后完成,所以要返回正确顺序时要进行嵌套。
      

  4.   

    是啊
    我今天写了个
     Select * from (Select a,b,c from DB where a=:a and b=:b) where RowNum <= :RowNum
    会出错。。请问这种的应该怎么改正确呢?
      

  5.   

    Oracle取前面几条记录时,如果要排序的。它会先进行把前几条记录取出后,才进行排序的。。所以只能将数据选排序后得出的作为数据集,然后再进行where RowNum <= n提取的。。但是这样的话,用参数传的话老是出错,就像我上面写的那样。请问应该怎么办?
      

  6.   

    select rownum, t.* from (select * from table_name where rownum<=10 ) t