oracle数据库,如何根据概率随机查询取四条数据呢?

SELECTtop(4)*FROMpropORDERBYCAST(CAST('0x'+LEFT(CAST(NEWID()ASVARCHAR(38)),8)ASVARBIN... SELECT top(4)* FROM prop
ORDER BY CAST(CAST('0x'+LEFT(CAST(NEWID() AS VARCHAR(38)),8) AS VARBINARY) AS BIGINT) %1000/1000.0*[gailv] desc
---gailv 代表 存有概率值的列名

我从网上找到了这种随机的方式,比较适合我的需要,非常感谢两位的回答!
展开
 我来答
hu125688014
2013-04-07 · TA获得超过126个赞
知道答主
回答量:279
采纳率:0%
帮助的人:76.4万
展开全部
select * from tableName sample(10) where rownum<5;
sample(10)代表从tableName 表中随机取到10%的数据 rownum<5 取4条
追问
非常感谢这位网友热心的回答,谢谢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
刘天明aP
2013-04-07 · TA获得超过263个赞
知道小有建树答主
回答量:279
采纳率:0%
帮助的人:198万
展开全部
select * from ( select * from MEMBER order by dbms_random.value ) where rownum<=4

来自:http://wenku.baidu.com/view/447274fa0242a8956bece466.html
追问
首先感谢您的回答,我试了一下该条语句,可是不清楚 dbms_random.value  这个是什么!为什么根据这个排序
追答
原来你才是真正的大神,见笑了,你用的方法我都看不懂,呵呵,
dbms_random.value就是0-1之间取个随机数,就是为了随机排序,select dbms_random.value from ( select * from MEMBER order by dbms_random.value ) where rownum<=4 就知道随机数是什么了。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
li_Agony
推荐于2016-07-08 · TA获得超过128个赞
知道小有建树答主
回答量:106
采纳率:100%
帮助的人:70.8万
展开全部
select * from (select * from 表名 order by dbms_random.random) where rownum<=4
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式