從oracle表中隨機取記錄,產生隨機數和隨機字串

uuxa發表於2009-03-26

1、從表中隨機取記錄

select * from (select * from staff order by dbms_random.random) 表示從STAFF表中隨機取3條記錄

where rownum < 4

[@more@]

2、產生隨機數

SELECT DBMS_RANDOM.RANDOM FROM DUAL;

產生一個任意大小的隨機數

SELECT ABS(MOD(DBMS_RANDOM.RANDOM,100)) FROM DUAL;

產生一個100以內的隨機數

SELECT TRUNC(100+900*dbms_random.value) FROM dual;

產生一個1001000之間的隨機數

SELECT dbms_random.value FROM dual;

產生一個01之間的隨機數

SELECT dbms_random.value(10,20) FROM dual;

產生一個1020之間的隨機數

SELECT dbms_random.normal FROM dual;

NORMAL函式返回服從正態分佈的一組數。此正態分佈標準偏差為1,期望值為0。這個函式返回的數值中有68%是介於-1+1之間,95%介於-2+2之間,99%介於-3+3之間。

3、產生隨機字串

SELECT dbms_random.string FROM dual;

返回一個長度達60個字元的隨機字串。 (未試驗成功)

select dbms_random.string('P',20) from dual;

第一個引數 P 表示 printable,即字串由任意可列印字元構成
第二個參數列示返回字串長度

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7416120/viewspace-1019479/,如需轉載,請註明出處,否則將追究法律責任。

相關文章