select
創新互聯公司專業為企業提供鄭州網站建設、鄭州做網站、鄭州網站設計、鄭州網站制作等企業網站建設、網頁設計與制作、鄭州企業網站模板建站服務,十多年鄭州做網站經驗,不只是建網站,更提供有價值的思路和整體網絡服務。
to_char(sysdate,'yyyymmdd')||lpad(round(dbms_random.value(1,999999999)),9,0)
from
dual;
解釋一下,to_char(sysdate,'yyyymmdd')是求得日期,也就是當前日期的年月日,||是連接符號
round(dbms_random.value(1,999999999)是取隨機數的整數位,round是四舍五入,從1-99999999之間取
lpad(9,0)是個左補0函數,如果選出的隨機數為1,則前邊就是8個0補充
oracle隨機數 需要用?dbms_random
ORACLE的PL/SQL提供了生成隨機數和隨機字符串的多種方式,羅列如下:
1、小數( 0 ~ 1)
select?dbms_random.value?from?dual;
2、指定范圍內的小數 ( 0 ~ 100 )
select?dbms_random.value(0,100)?from?dual;
3、指定范圍內的整數 ( 0 ~ 100 )
select?trunc(dbms_random.value(0,100))?from?dual;
4、長度為20的隨機數字串
select?substr(cast(dbms_random.value?as?varchar2(38)),3,20)?from?dual;
5、正態分布的隨機數
select?dbms_random.normal?from?dual;
6、隨機字符串
select?dbms_random.string(opt,?length)?from?dual;
opt可取值如下:
'u','U' ? ?: ? ?大寫字母
'l','L' ? ?: ? ?小寫字母
'a','A' ? ?: ? ?大、小寫字母
'x','X' ? ?: ? ?數字、大寫字母
'p','P' ? ?: ? ?可打印字符
7、隨機日期
select?to_date(2454084+TRUNC(DBMS_RANDOM.VALUE(0,365)),'J')?from?dual
通過下面的語句獲得指定日期的基數
select?to_char(sysdate,'J')?from?dual;
8、生成GUID
select?sys_guid()?from?dual;
DBMS_RANDOM包提供了內置的隨機數生成器。
大多數語言的隨機函數生成器都需要提供一個種子,在Oracle中,選取種子的過程叫做初始化,再執行隨機函數之前,可以不用顯式地執行初始化,Oracle會自動使用日期、用戶ID、進程ID來進行初始化。當然,也可以顯式地初始化或者叫自定義初始化。
val參數表示種子數字
字符串長度最多可以為2000.
RANDOM函數的返回值取值范圍是[ -2 31 ,2 31 ],因此如果我們若想得到[-1,1]范圍內的偽隨機結果:
如果是[0,1],取絕對值即可
若想[m,n] (mn)這種形式,例如[3,9]
[m,n] (mn)這種形式的一般表達式為
select abs(dbms_random.random/power(2,32))*(n-m)+m from dual;
在RANDOM函數的示例中,我們已經討論了 [0,1] 區間和 [m,n](mn) 區間上的隨機數的生成方法,而VALUE函數即可以生成 [0,1] 上的隨機數,又可以生成 [m,n](mn) 上的隨機數,
當沒有參數時,返回 [0,1] 上的隨機數。
low參數表示最小值,high參數表示最大值,返回 [low,high] 區間內的隨機數
opt參數控制字符串的大小寫格式,可選值及含義如下:
‘u’或'U':表示大寫字母
‘l’或‘L’:表示小寫字母
‘a’或‘A’:表示大小寫混合
‘x’或‘X’:表示大寫字母和數字混合
‘p’或‘P’:表示任意可顯示字符
len表示字符串長度
oracle取一個隨機數取一個9位的隨機數:
select round (dbms_random.value(1,999999999),0) from dual;
select tt.* from (select rownum rn,t.* from table1 t ) ttwhere tt.rn in(select trunc(dbms_random.value(1,(select count(*) from table1 ))) from dual connect by rownum =10); ----這里是最多取10條
Oracle dbms_random包主要用于獲得隨機數,可以為數字也可以為字母等,還可以實現混拼。
常用函數
生成一個0~1間的隨機小數(包括0,不包括1):
生成一個1~10間的隨機小數(包括1和不包括10):
dbms_random.random
The RANDOM function produces integers in the range [-2^^31, 2^^31),注意,區間為左閉右開。
隨機從students表中獲取10條記錄
----------------------------------------------------------
dbms_random.string
生成一個指定模式指定位數的隨機字符串,可選模式如下:
2022-3-26
網站名稱:oracle如何取隨機數 oracle隨機數取整
轉載來于:http://vcdvsql.cn/article0/hejpoo.html
成都網站建設公司_創新互聯,為您提供建站公司、云服務器、面包屑導航、搜索引擎優化、App設計、ChatGPT
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯