日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

oracle随机取数据

發布時間:2025/5/22 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle随机取数据 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

***

針對oracle

1,方法一,所有記錄隨機排序,然后選擇5條記錄

select * from ( select * from t_base_menu order by dbms_random.value) where rownum<=5

區別于下面這樣,選擇了5條記錄,然后隨機排序,所以一直是相同的5條記錄

select * from t_base_menu where rownum<=5 order by dbms_random.value

取出前10條記錄的后5條,順序不變

select * from (select t.menu_name,rownum as myrow from t_base_menu t where rownum<=10 order by rownum desc) a where rownum<=5 order by a.myrow asc

?

下面介紹一下dbms.random:

dbms.random是oracle提供的一個隨機函數包

測試一:隨機生成一個數

dbms_random.value用法:
生成一個大于等于0,小于等于1的38位小數?

select dbms_random.value from dual;

輸出:0.395461555239436

測試二:指定范圍

select dbms_random.value(100,0) from dual;

輸出:54.4656475243638

select dbms_random.value(0,8) from dual;

輸出:7.5896620684203

?

下面介紹rownum:

oracle對查詢出來的結果集,加上的序列號就是rownum,總是從1開始

---rownum>1得不到任何數據,因為第一條記錄的rownum=1,不符合條件,所以刪除,這樣使得下一條記錄的rownum又是1,

這樣下去,所以的記錄都不滿足條件,自然得不到結果,而rownum>=1,或者rownum>0可以得到所有記錄,

同理,between 0 and 10,between 1 and 10可以得到10條記錄

而between 2 and 10沒有結果

2,方法二

?

****

參考地址:http://yisean.iteye.com/blog/608581

轉載于:https://www.cnblogs.com/qingmaple/p/4149253.html

總結

以上是生活随笔為你收集整理的oracle随机取数据的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。