oracle取隨機數問題

2024-12-28 06:40:18 字數 3615 閱讀 8890

1樓:王水的驗證

其實這個問題是這樣的,你首先應該用乙個array 記錄 所有你要 取的數。

比如是乙個 1-100的陣列,然後你就用隨機數 取乙個 陣列的 位置,比如你 取到了 10,你就從 這個array 中 ,刪除這個數,然後取隨機數的範圍縮小乙個,因為陣列已經是1-99的陣列了。

就這樣,一直取到最後乙個數字。

2樓:網友

可以這樣,比如建個有1-10的表。

create table test select rownum from all_objects where rownum<=10

然後。比如取四條的話。

select * from (select * from test order by dbms_ where rownum<=4

3樓:

---再次謝謝你---

你理解能力有問題,謝謝。

看了我的sql你難道還不知道我要的是一次取n個隨機數,並且不重複嗎,你那麼取頂多取乙個,而且還不通用。

對於樓主的態度,好像提問人比回覆人還囂張。

本人拒絕回覆態度不好的提問者的問題,刪除之前回復內容。

自己好好思考一下,看一下dbms_用法。

好心提示一下:

你那麼取頂多取乙個?

認真一點已經有答案了剛才回覆有提到rownum<=10

oracle隨機函式

4樓:新科技

dbms_random包提供了內建的隨機數生成器。

大多數語言的隨機純悶消做知函式生成器都需要提供乙個種子,在oracle中,選取種子的過程叫做初始化,再執行隨機函式之前,可以不用顯式地執行初始化,oracle會自動使用日期、使用者id、程序id來進行初始化。當然,也可以顯式地初始化或者叫自定義初始化。

val參數列示種子數字。

字串長度最多可以為2000.

random函式的返回值取值範圍是[ -231231,因此如果我們若想得到[-1,1]範圍內的偽隨機結果:

如果是[0,1],取絕對值即可。

若想[m,n] (m[m,n] (m在random函式的示例中,我們已經討論了 [0,1] 區間和 [m,n](m當沒有引數時,返回 [0,1] 上的隨機數。

low參數列示最小值,high參數列示最大值,返回 [low,high] 區間內的隨機罩敬數。

opt引數控制字串的大小寫格式,可選值及含義如下:

u』或'u':表示大寫字母。

l』或『l』:表示小寫字母。

a』或『a』:表示大小寫混合。

x』或『x』:表示大寫字母和數字混合。

p』或『p』:表示任意可顯示字元。

len表示字串長度。

oracle資料庫生成隨機數的函式

5樓:機器

在oracle中的dbms_random程式包中封裝了一些生成隨機數和隨機字串的函式 其中常用的有以下兩個。

dbms_random value函式。

該函式用來產生乙個隨機數 有兩種用法。

產生乙個介於 和 之間(不包含 和 )的 位精度的隨機數 語法為。

dbms_random value return number; 這種用法不包含引數。

產生乙個介於指定範圍之內的穗仿銀 位精度的隨機數 語法為。

dbms_random value(low in number high in number) return number; 這種用法包含兩引數 引數low用來指定要生成的隨機數的下限 引數high指定上限 生成的隨機 請注意生成的隨機數有可能猜宴等於下限 但絕對小於上限 即「low<=隨機數。

舉個例子: 要產生乙個 到 之間的數可以這樣寫: dbms_random value( )

dbms_random string函式。

該函式產生乙個隨機字串 語法為。

dbms_random string (opt in char len in number) return varchar ; 引數len指定生成的字串的長度。

引數opt指定生成的字串的樣式 允許的取值及其表示的含義如下表所示。

取值 含義 『u』或』u』 返回乙個由大寫字母組成的字串 『l』或』l』 返回乙個由小寫字母組成的字串 『a』或』a』 返回乙個由大寫字母和小寫字母組成的字串 『x』或』x』 返回乙個由大寫字母和數字組成的字元大肢串 『p』或』p』 返回乙個由任意的可列印字元組成的字串 lishixinzhi/article/program/oracle/201311/19036

oracle 隨機函式

6樓:網友

需要用 dbms_random

oracle的pl/sql提供了生成隨機數和隨機字串。

的多種方式,羅列如下:

1、小數( 0 ~ 1)

select dbms_ from dual;

2、指定範圍內的小數 ( 0 ~ 100 )

select dbms_,100) from dual;

3、指定範圍內的整數 ( 0 ~ 100 )

select trunc(dbms_,100)) from dual;

4、長度為20的隨機數字串。

select substr(cast(dbms_ as varchar2(38)),3,20) from dual;

5、正態分佈的隨機數。

select dbms_ from dual;

6、隨機字串。

select dbms_, length) from dual;

opt可取值如下:

u','u' : 大寫字母。

l','l' : 小寫字母。

a','a' : 大、小寫字母。

x','x' : 數字、大寫字母。

p','p' : 可列印字元。

7、隨機日期。

select to_date(2454084+trunc(dbms_,365)),'j') from dual

通過下面的語句獲得指定日期的基數。

select to_char(sysdate,'j') from dual;

8、生成guid

select sys_guid() from dual;

7樓:

1、dbms_

這個函式不帶引數,能返回normal distribution的乙個number型別,所以基本上隨機數會在-1到1之間。

2、dbms_

這個也沒有引數,返回乙個從-power(2,31)到power(2,31)的整數值。

3、dbms_

這個函式分為兩種,一種是沒有引數,則直接返回0-1之間的38位小數。

4、dbms_

這個函式必須帶有兩個引數,前面的字元指定型別,後面的數值指定位數(最大60)

8樓:網友

value 函式的第一種形式返回乙個大於或等於 0 且小於 1 的隨機數;第二種形式返回乙個大於或等於 low ,小於 high 的隨機數。下面是其用法的乙個示例:

sql> select dbms_, dbms_,18) from dual;

value dbms_,18)

VB隨機數問題,VB隨機數的問題。

private sub command1 click randomize text3.text int rnd val text2.text val text1.text 0.5 val text1.text 隨機 上線 下線 下線 如果不用 0.5 就永遠不會產生上限值,因為 rnd永遠 0 1 ...

vb問題 關於隨機數,一個vb問題 關於隨機數

放置一個label一個command然後把form的boarderstyle設定成3後貼上下面的 dim invalue dim arr as integer private sub command1 click 產生隨機數字 randomize dim rndnum as integerrndnu...

flash as2 0隨機數問題

你對random 這個隨機函式的理解錯了。random 的括號裡只能放一個數。比如 random 750 表示的是隨機獲得一個從0到750這個範圍裡的一個數。不是像你這樣來自己定義這個範圍是誰誰誰的。至於解決方法,我覺得頂樓的方案不錯。flash as2的 隨機數 問題。你給的 裡沒有看到計時器,你...