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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Math類產生隨機數後保留一位小數隨機
- R產生隨機數隨機
- c++產生隨機數C++隨機
- 【筆記】如何產生隨機數筆記隨機
- Python產生20個隨機整數的方法詳解!Python隨機
- php生成一個可選位數的隨機碼PHP隨機
- 如何產生指定範圍的隨機數隨機
- Matlab產生隨機數函式小結Matlab隨機函式
- Oracle-新增一個欄位並設定日期Oracle
- 將多個JSON欄位對映到單個Java欄位JSONJava
- Rust中如何產生隨機數或密碼?Rust隨機密碼
- laravel生產環境下新增欄位Laravel
- matlab中的產生隨機數的rand函式Matlab隨機函式
- Random 專案總結 -11 產生隨機數字random隨機
- mysql sql同一個欄位多個行轉成一個欄位查詢MySql
- 對於隨機數的一些分析隨機
- 一個隨機數的類c++隨機C++
- 分享一個批量產生隨機測試資料的MySQL儲存過程隨機MySql儲存過程
- Oracle-欄位的新增Oracle
- 關於如何產生隨機數的幾種方法彙總!(2018.07.08)隨機
- JavaScript隨機五位數驗證碼JavaScript隨機
- 【java】隨機生成6位的數字Java隨機
- MySQL 更新一個表裡的欄位等於另一個表某欄位的值MySql
- mysql基礎 依據一個欄位查詢另外一個欄位存在不同的值MySql
- Matlab 隨機生成兩個數值之間的隨機數Matlab隨機
- ORACLE LOB大欄位維護Oracle
- oracle fga審計(欄位級)Oracle
- Python中存放10000個6位隨機數字的驗證碼Python隨機
- oracle中檢視一張表是否有主鍵,主鍵在哪個欄位上Oracle
- mysql 計算 一個文字欄位的內容一個文字出現的次數MySql
- 介面測試-使用 mock 生產隨機資料Mock隨機
- 介面測試-使用mock生產隨機資料Mock隨機
- MySQL 更新同一個表不同欄位MySql
- 使用正規表示式對數字字串欄位排序字串排序
- 短視訊軟體開發,驗證碼的隨機數如何產生隨機
- oracle增加欄位帶預設值Oracle
- oracle 修改表欄位的長度Oracle
- 查詢oracle欄位預設值Oracle
- 要慎用mysql的enum欄位的原因MySql