日期:2014-05-17  浏览次数:20903 次

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

------解决方案--------------------
不想用sample 就下面这样喽:

select *
  from (select t.*, row_number() over(order by dbms_random.value) rn
          from t) t
 where t.rn = 1;

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