如何随机从一个表中取数据呢?

marcovanbasten 2006-08-28 02:50:12
我用的是ORACLE9i,现在想从一个表中,随机地取出N条(或是百分之几)的记录,请问如何办到啊?急!
...全文
293 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
marcovanbasten 2006-08-28
  • 打赏
  • 举报
回复
啥也不说了。给分!
xiaoxiao1984 2006-08-28
  • 打赏
  • 举报
回复
SQL> select * from tab_1 order by dbms_random.value;

ID NAME
---------- ----------
2 a
3 b
1 a
4 b
158 x
152 x

6 rows selected

SQL> select * from tab_1 order by dbms_random.value;

ID NAME
---------- ----------
2 a
4 b
152 x
1 a
3 b
158 x

6 rows selected

SQL> select * from tab_1 order by dbms_random.value;

ID NAME
---------- ----------
4 b
2 a
158 x
152 x
1 a
3 b

6 rows selected

SQL> select * from tab_1 order by dbms_random.value;

ID NAME
---------- ----------
3 b
2 a
158 x
4 b
1 a
152 x

6 rows selected

楼主确定拼写正确么
marcovanbasten 2006-08-28
  • 打赏
  • 举报
回复
楼上的有道理。可是我在实际操作的时候,发现得到的结果好像还挺象的。
xiaoxiao1984 2006-08-28
  • 打赏
  • 举报
回复
不一样,select * from tb_name where rownum <= N order by dbms_random.value 先取到固定的N条记录然后随机排序

select * from (select * from tb_name order by dbms_random.value ) where rownum <= N; 先随机排序,然后取得前N条记录
marcovanbasten 2006-08-28
  • 打赏
  • 举报
回复
有个问题:
select * from (select * from tb_name order by dbms_random.value ) where rownum <= N;
上面这句为什么不能写成:
select * from tb_name where rownum <= N order by dbms_random.value
感觉效果一样啊?
xiaoxiao1984 2006-08-28
  • 打赏
  • 举报
回复
--随机取得百分之N的纪录
select * from t1 sample(N) ;

--随机取得大概N条记录
select * from (select * from tb_name order by dbms_random.value ) where rownum <= N;

SQL> select count(*) from aa sample(50);

COUNT(*)
----------
749852

SQL> select count(*) from aa sample(20);

COUNT(*)
----------
299869
  • 打赏
  • 举报
回复
不错,收藏了
guangli_zhang 2006-08-28
  • 打赏
  • 举报
回复
xiaoxiao1984(笨猫儿^_^)
select * from t1 sample(N) ;--随机取得大概N条记录
是什么意思?我怎么没试成功呢?
swimming8243 2006-08-28
  • 打赏
  • 举报
回复
mark
xiaoxiao1984 2006-08-28
  • 打赏
  • 举报
回复
select * from (select * from tb_name order by dbms_random.value ) where rownum <= N
xiaoxiao1984 2006-08-28
  • 打赏
  • 举报
回复
select * from t1 sample(N) ;--随机取得大概N条记录

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧