永发信息网

[Oracle]从一个表中随机取出6条记录的sql语句

答案:4  悬赏:0  手机版
解决时间 2021-01-05 21:27
  • 提问者网友:流星是天使的眼泪
  • 2021-01-05 09:02
[Oracle]从一个表中随机取出6条记录的sql语句
最佳答案
  • 五星知识达人网友:低音帝王
  • 2021-01-05 09:30
oracle随机读取表中的N条数据方法:
1) select * from (select * from tablename order by sys_guid()) where rownum < N; 
2) select * from (select * from tablename order by dbms_random.value) where rownum< N; 
3) select *  from (select * from table_name sample(10)   order by trunc(dbms_random.value(0, 1000)))  where rownum < N;说明: 
  sample(10)含义为检索表中的10%数据,sample值应该在[0.000001,99.999999]之间,其中 sys_guid() 和 dbms_random.value都是内部函数
注:
  在使1)方法时,即使用sys_guid() 这种方法时,有时会获取到相同的记录,即:和前一次查询的结果集是一样的(可能是和操作系统有关:windows正常,linux异常;也可能是因为sys_guid()函数本身的问题,有待继续研究)
  所以,为确保在不同的平台每次读取的数据都是随机的,建议采用2)和3)两种方案,其中2)方案更常用。3)方案缩小了查询的范围,在查询大表,且要提取数据不是很不多的情况下,会对查询速度上有一定的提高
全部回答
  • 1楼网友:英雄的欲望
  • 2021-01-05 11:16
这个 这个 真没试过 读取一定顺序的六条数据倒是试过
  • 2楼网友:大漠
  • 2021-01-05 10:44
用随机函数啊
  • 3楼网友:街头电车
  • 2021-01-05 10:10
select * from (select * from 表名 order by dbms_random.value) where rownum<=6

表名换一下
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯