现在有个表,想从中随机取出一条记录 想问下除了 SAMPLE ,还有其他的办法么?我的主键是从序列中生成的。 还有,SAMPLE 这个从表中读取特定百分比的记录 是从全表中随机读取的么,很多资料说 这个取值不平均。
麻烦大家了Oracle

解决方案 »

  1.   

    select * from lpsx SAMPLE(1) where rownum=1  我觉得这样应该可以了。
      

  2.   

    不想用sample 就下面这样喽:select *
      from (select t.*, row_number() over(order by dbms_random.value) rn
              from t) t
     where t.rn = 1;
      

  3.   

    这是我用的,5w+数据用时0.13s
    SELECT * FROM (SELECT * FROM t_enterprise_info order by dbms_random.value) WHERE rownum =1;
      

  4.   

    我先问下 SAMPLE 取的记录 是随机取百分之1么?
      

  5.   

    我先问下 SAMPLE 取的记录 是随机取百分之1么?官方文档已经说的很清楚了,随机取,但不保证一定是1%,有可能是0.9%,有可能是1.1%。。
    只能说是在1%上下。http://docs.oracle.com/cd/E11882_01/server.112/e26088/statements_10002.htm#SQLRF01702
      

  6.   

    我先问下 SAMPLE 取的记录 是随机取百分之1么?官方文档已经说的很清楚了,随机取,但不保证一定是1%,有可能是0.9%,有可能是1.1%。。
    只能说是在1%上下。http://docs.oracle.com/cd/E11882_01/server.112/e26088/statements_10002.htm#SQLRF01702
    好的 我去学习学习 谢谢~~~