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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

oracle 与sql serve 获取随机行数的数据

發(fā)布時(shí)間:2025/3/20 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle 与sql serve 获取随机行数的数据 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Oracle 隨機(jī)獲取N條數(shù)據(jù)
??? 當(dāng)我們獲取數(shù)據(jù)時(shí),可能會(huì)有這樣的需求,即每次從表中獲取數(shù)據(jù)時(shí),是隨機(jī)獲取一定的記錄,而不是每次都獲取一樣的數(shù)據(jù),這時(shí)我們可以采取Oracle內(nèi)部一些函數(shù),來(lái)達(dá)到這樣的目的
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;

說(shuō)明:?
  sample(10)含義為檢索表中的10%數(shù)據(jù),sample值應(yīng)該在[0.000001,99.999999]之間,其中 sys_guid() 和 dbms_random.value都是內(nèi)部函數(shù),通過(guò)這樣的方法,就可以實(shí)現(xiàn)我們的需求了.

注:
  在使1)方法時(shí),即使用sys_guid() 這種方法時(shí),有時(shí)會(huì)獲取到相同的記錄,即和前一次查詢的結(jié)果集是一樣的,我查找了相關(guān)資料,有些說(shuō)是和操作系統(tǒng)有關(guān),在windows平臺(tái)下正常,獲取到的數(shù)據(jù)是隨機(jī)的,而在linux等平臺(tái)下始終是相同不變的數(shù)據(jù)集,有些說(shuō)是因?yàn)閟ys_guid()函數(shù)本身的問題,即sys_guid()會(huì)在查詢上生成一個(gè)16字節(jié)的全局唯一標(biāo)識(shí)符,這個(gè)標(biāo)識(shí)符在絕大部分平臺(tái)上由一個(gè)宿主標(biāo)識(shí)符和進(jìn)程或進(jìn)程的線程標(biāo)識(shí)符組成,這就是說(shuō),它很可能是隨機(jī)的,但是并不表示一定是百分之百的這樣.

SQL serve 中獲取隨機(jī)行數(shù)數(shù)據(jù)的方式如下:

select top N ?* from ?table_Name order by newid();

但是類似oracle 的使用rand 是沒有結(jié)果的。

以上就是一些記錄。

總結(jié)

以上是生活随笔為你收集整理的oracle 与sql serve 获取随机行数的数据的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。