请问oracle能否做到这样的随机查询

来源:百度知道 编辑:UC知道 时间:2024/06/17 11:31:38
select * from table 比如查出来是10条数据 我现在只想每次查出来2条 而且是随机

一楼的第一种和第二种情况可以通过,但是要把20000改成2

第三种通不过,如果sample(2)的话,有可能取到0或1,那么结果里就只能查到一条或者一条数据都查不出来了

即使是10000000000也有可能取到0或1,只是随机概率的问题

方法一:通过dbms_random.random select * from (select * from largetable order by dbms_random.random) where rownum <= 20000;
方法二:通过dbms_random.value
select * from (select * from largetable order by dbms_random.value) where rownum <= 20000;
方法三:通过采样表扫描 select * from (select * from largetable sample(10)) where rownum <= 20000;

select * from test sample(2) 就可以

计算机上最难做的就是随机,你为什么需要这样的逻辑?随机需要做到什么程度?
使用random函数可能好点,sample不可取。