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 代表 存有概率值的列名
我从网上找到了这种随机的方式,比较适合我的需要,非常感谢两位的回答! 展开
ORDER BY CAST(CAST('0x'+LEFT(CAST(NEWID() AS VARCHAR(38)),8) AS VARBINARY) AS BIGINT) %1000/1000.0*[gailv] desc
---gailv 代表 存有概率值的列名
我从网上找到了这种随机的方式,比较适合我的需要,非常感谢两位的回答! 展开
展开全部
select * from tableName sample(10) where rownum<5;
sample(10)代表从tableName 表中随机取到10%的数据 rownum<5 取4条
sample(10)代表从tableName 表中随机取到10%的数据 rownum<5 取4条
追问
非常感谢这位网友热心的回答,谢谢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select * from ( select * from MEMBER order by dbms_random.value ) where rownum<=4
来自:http://wenku.baidu.com/view/447274fa0242a8956bece466.html
来自: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 就知道随机数是什么了。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select * from (select * from 表名 order by dbms_random.random) where rownum<=4
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询