程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> Oracle如何實現從特定組合中隨機讀取值,oracle組合

Oracle如何實現從特定組合中隨機讀取值,oracle組合

編輯:Oracle教程

Oracle如何實現從特定組合中隨機讀取值,oracle組合


在這裡,我們會用到DBMS_RANDOM包和CASE WHEN語句,思路如下:

一、利用DBMS_RANDOM.RANDOM函數隨機生成數值,然後對數值進行取模,如果我們要在10個元素中隨機讀取的話,那我們需要對10進行取模。

二、再將取模後的值利用CASE WHEN語句與元素進行關聯。

譬如,我有一個組合,裡面包含“北京”,“上海”,“廣州”,“深圳”,“武漢”五個元素,想從這五個元素中隨機讀取值來填充表的某個字段。

首先,創建測試表

SQL> create table test(loc varchar2(2 char));

Table created.

構造能隨機讀取元素的SQL語句

select case mod(abs(dbms_random.random),5)
       when 1 then '北京'
       when 2 then '上海'
       when 3 then '廣州'
       when 4 then '深圳'
       else '武漢' end "LOC"
from dual;

大批量填充test表的loc字段

begin
  for i in 1..10 loop
     insert into test values(case mod(abs(dbms_random.random),5)
          when 1 then '北京'
          when 2 then '上海'
          when 3 then '廣州'
          when 4 then '深圳'
          else '武漢' end );
  end loop; 
end;

最後生成的結果如下:

SQL> select * from test;

LOC
--------
武漢
廣州
上海
北京
上海
武漢
北京
上海
武漢
深圳

10 rows selected.

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved