如何随机的取出数据表中的数据行?经过查找资料,有以下几种方式:
  1. 利用oracle提供的dbms_random
select * from (select a.proname,a.value,a.stat_date from wxxstat_test_temp a order by dbms_random.value) where rownum<=5;
也可以:select * from (select a.proname,a.value,a.stat_date from wxxstat_test_temp a order by dbms_random.random) where rownum<=5;
也可以:
select * from (select a.proname,a.value,a.stat_date from wxxstat_test_temp a order by sys_guid()) where rownum<=5;
虽然oracle提供的函数不同,但是原理基本相同,先利用随机数对数据进行排序,排序完成后,再取得想要的数据条数。
  2. 利用oracle提供的sample来实现取得随机数。
     sample可以随机取得表中数据的百分之几。
     select * from wxxstat_test_temp sample(10);---随机取得数据表10%的数据。
     select * from (select * from wxxstat_test_temp sample(10))where rownum<5;----随机取得几条数据。