如何从一张表中随机抽取一条记录

碧水幽幽泉 2010-02-03 12:17:28
如题:
如何从一张表中随机抽取一条记录!

值得注意的是:表可以是大表,也可以是小表。


...全文
108 12 打赏 收藏 举报
写回复
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiangyiming 2010-02-04
  • 打赏
  • 举报
回复
select top 1 * from table order by newID()
碧水幽幽泉 2010-02-04
  • 打赏
  • 举报
回复
好的!谢谢各位!可以结帖了!
tangren 2010-02-03
  • 打赏
  • 举报
回复
--使用oracle提供的随机数包
SELECT * FROM (SELECT * FROM t ORDER BY dbms_random.value) WHERE rownum < 2;
碧水幽幽泉 2010-02-03
  • 打赏
  • 举报
回复
sample 只适合抽取大表中的记录!
并且不好使!有误差!
suiziguo 2010-02-03
  • 打赏
  • 举报
回复
select * from consume SAMPLE(10) where rownum<2;
duqiangcise 2010-02-03
  • 打赏
  • 举报
回复
学习了。
ojuju10 2010-02-03
  • 打赏
  • 举报
回复
select * from
(
select * from tb
order by sys_guid()
) where rownum=1

select * from
(
select * from tb
order by dbms_random.value()
) where rownum =1

--经过验证,后者效率更高,数字比较与字符比较效率高
tiamay 2010-02-03
  • 打赏
  • 举报
回复
经过多次验证
SELECT * FROM (SELECT * FROM t ORDER BY sys_guid()) WHERE rownum < 2;这个的效率高些
tiamay 2010-02-03
  • 打赏
  • 举报
回复
学习了
iqlife 2010-02-03
  • 打赏
  • 举报
回复
dbms_random
oraclemch 2010-02-03
  • 打赏
  • 举报
回复
[Quote=引用楼主 qq646748739 的回复:]
  如题:
      如何从一张表中随机抽取一条记录!

      值得注意的是:表可以是大表,也可以是小表。



[/Quote]

select * from emp where rownum=1
tangren 2010-02-03
  • 打赏
  • 举报
回复
--使用sys_guid函数
SELECT * FROM (SELECT * FROM t ORDER BY sys_guid()) WHERE rownum < 2;
相关推荐
发帖
Oracle 高级技术

3476

社区成员

Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
帖子事件
创建了帖子
2010-02-03 12:17
社区公告
暂无公告