Oracle中的SQL,得到表中前10条记录怎么写?
  select * from 
(Select  * from myTable where userId=10 order by CreateTime Desc )t
where rownum<=10

解决方案 »

  1.   

    select * from table where rownum=round(dbms_random.value*N)N取决于你的记录数是几位数
      

  2.   

    select * from (
    select * from table order by dbms_random.value) where rownum<=10
      

  3.   

    不象SQLSEVER中用top n?
      

  4.   

    select * from (
    select * from mytable order by dbms_random.value) where rownum<=10
    不好意思呀,我怎么看不懂呀,有人帮我解释一下吗?
    from后面可以跟一个记录集?
    dbms_random.value是 mytable的一个字段吗?以它排序有什么用意?
    rownum又是什么呀?
    我初学呀,大家别笑我,我可以给你们分的,我分很多的。
      

  5.   

    高人写的东东,你试一下就知道了就是满足你要求的SQL
      

  6.   

    从zyz2表中随机取出两条纪录:
    SQL> select * from zyz2;
           ID         P1         P2
    ---------- ---------- ----------
            1        211        212
            2         12         14
            4        241        242
            2        145
            1         11
            3         17          26 rows selected.Elapsed: 00:00:00.50
    SQL> select id,p1,p2 from (select zyz2.*,dbms_random.random num from zyz2 order
    by num) where rownum<3;       ID         P1         P2
    ---------- ---------- ----------
            2         12         14
            1        211        212Elapsed: 00:00:00.30
    SQL> select id,p1,p2 from (select zyz2.*,dbms_random.random num from zyz2 order
    by num) where rownum<3;       ID         P1         P2
    ---------- ---------- ----------
            3         17          2
            2         12         14
    8i以上
    select * from (select * from ur_table order by sys_guid()) where rownum<n;
    select * from (select * from ur_table order by dbms_random.value) where rownum<n;
    dbms_random.value(min,max)  --从min到max之间取值