select * from (select t.*, rownum rn from t order by dbms_random.value ) where rn <= 3;
应是: select * from (select t.* from t order by dbms_random.value ) where rownum <= 3;
--除了dbms_random包外,还可以用sys_guid函数 SELECT * FROM (SELECT * FROM t ORDER BY sys_guid()) WHERE rownum <= 3;
SELECT * FROM (SELECT * FROM gm_user ORDER BY sys_guid()) WHERE rownum <= 3;select * from (select t.* from gm_user t order by dbms_random.value ) where rownum <= 3; 这两种都可以,学习了
1. 使用dbms_random select * from emp order by dbms_random.value(1, 5000); select * from emp order by dbms_random.random;
2. 使用sys_guid; select * from emp order by sys_guid();
3. 使用sample 大表用这种方式比较快 select * from emp sample(50); --抽样50% select * from emp sample block(50); -- 读取emp表 50%的block
应是:
select * from (select t.* from t order by dbms_random.value ) where rownum <= 3;
SELECT * FROM (SELECT * FROM t ORDER BY sys_guid()) WHERE rownum <= 3;
这两种都可以,学习了
select * from emp order by dbms_random.value(1, 5000);
select * from emp order by dbms_random.random;
2. 使用sys_guid;
select * from emp order by sys_guid();
3. 使用sample
大表用这种方式比较快
select * from emp sample(50); --抽样50%
select * from emp sample block(50); -- 读取emp表 50%的block