oracle要對一個欄位產生隨機數
需求:對方我公司的產品是一路撈導航網站。主頁圖片重新整理的有點慢,就想把原來只用一個域名來重新整理圖片的過程改成四個域名來重新整理,四個並行重新整理可以提高速度,交給我運算元據庫的任務就是:修改表中的關於圖片的欄位的內容,
SQL> select MAINIMAGEURL from test_nav_en_us.tb_type_main where rownum <6;
MAINIMAGEURL
--------------------------------------------------------------------------------
MAINIMAGEURL
--------------------------------------------------------------------------------
我的任務是要把m後面的0這個數字平均改成0,1,2,3這樣就把一個域名改成了四個,具體怎麼實現我不太清楚。
操作步驟:
1,利用拼接和擷取以及round對m後的數字取隨機數,
update TB_PAD_INFO_INDEX t
set t.MAINIMAGEURL=substr(t.MAINIMAGEURL,1,8)||round(dbms_random.value(0,3),0)||substr(t.MAINIMAGEURL,10,100);
2,因為是隨機數,肯定到不到完全平均的效果,所以先檢視現在分配的結果,
select substr(t.MAINIMAGEURL,9,1),count(*) from tb_pad_info_index t
group by substr(t.MAINIMAGEURL,9,1);
1 453
3 246
0 214
2 447
group by substr(t.MAINIMAGEURL,9,1);
1 453
3 246
0 214
2 447
3,根據上面的結果,把m1給m0分配120個,再把m2給m3分配100,藉助偽列rownum:
update TB_PAD_INFO_INDEX t
set t.MAINIMAGEURL=substr( t.MAINIMAGEURL,1,8)||0||substr( t.MAINIMAGEURL,10,100)
where substr( t.MAINIMAGEURL,9,2)='m1' and rownum<=120;
update TB_PAD_INFO_INDEX t
set t.MAINIMAGEURL=substr( t.MAINIMAGEURL,1,8)||3||substr( t.MAINIMAGEURL,10,100)
where substr( t.MAINIMAGEURL,9,2)='m2' and rownum<=100;
set t.MAINIMAGEURL=substr( t.MAINIMAGEURL,1,8)||0||substr( t.MAINIMAGEURL,10,100)
where substr( t.MAINIMAGEURL,9,2)='m1' and rownum<=120;
update TB_PAD_INFO_INDEX t
set t.MAINIMAGEURL=substr( t.MAINIMAGEURL,1,8)||3||substr( t.MAINIMAGEURL,10,100)
where substr( t.MAINIMAGEURL,9,2)='m2' and rownum<=100;
反正目的就是儘可能的平均一下。
再次檢視分配結果:
select substr(t.MAINIMAGEURL,9,1),count(*) from tb_pad_info_index t
group by substr(t.MAINIMAGEURL,9,1);
group by substr(t.MAINIMAGEURL,9,1);
1 333
3 346
0 334
2 345
3 346
0 334
2 345
其實如果資料量不是很大的話,可以藉助excl工具,和UE編輯器,以及plsql\developer 完成任務。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29654823/viewspace-1600232/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 產生一個32位的16進位制隨機數隨機
- linux生產32位隨機數Linux隨機
- Math類產生隨機數後保留一位小數隨機
- R產生隨機數隨機
- 從oracle表中隨機取記錄,產生隨機數和隨機字串Oracle隨機字串
- vc中產生隨機數隨機
- c++產生隨機數C++隨機
- ORACLE產生隨機數的多種方法分享 轉Oracle隨機
- 高效產生一組不重複的隨機數隨機
- 【筆記】如何產生隨機數筆記隨機
- js隨機產生區間數JS隨機
- matlab產生隨機數或隨機矩陣Matlab隨機矩陣
- 計算機隨機數的產生 (轉)計算機隨機
- 高效產生不重複的隨機數隨機
- Python產生20個隨機整數的方法詳解!Python隨機
- 如何產生指定範圍的隨機數隨機
- JavaScript產生隨機數例項程式碼JavaScript隨機
- C 語言產生隨機數的方法隨機
- C語言產生隨機數的方法C語言隨機
- 集合框架-產生10個1-20之間的隨機數,要求隨機數不能重複框架隨機
- 如何在linux中用命令產生一個範圍內的隨機數?Linux隨機
- jQuery對Table一個欄位排序jQuery排序
- php生成一個可選位數的隨機碼PHP隨機
- Matlab產生隨機數函式小結Matlab隨機函式
- Rust中如何產生隨機數或密碼?Rust隨機密碼
- 利用arc4random_uniform()產生隨機數randomORM隨機
- 產生唯一隨機碼的方法分析隨機
- laravel生產環境下新增欄位Laravel
- ORACLE 模擬資料之 從指定表中的指定欄位時隨機出一個值Oracle隨機
- 產生0到100內的任意隨機數隨機
- Random 專案總結 -11 產生隨機數字random隨機
- matlab中的產生隨機數的rand函式Matlab隨機函式
- Matlab產生特定範圍的隨機數矩陣Matlab隨機矩陣
- js實現的產生隨機數程式碼例項JS隨機
- MATLAB中如何產生指定範圍的隨機數Matlab隨機
- 隨機產生0-1之間實數的方法隨機
- 如何使用excel 2007產生隨機數Excel隨機
- C#隨機產生漢字C#隨機