Oracle中⽤sql语句取随机数和整数
---
应⽤round(5.678,3)保留⼩数
应⽤floor(5.678)保留整数
应⽤dbms_random.value(30,50)取得随机数
---
dbms_random包
获得随机⼩数Sql如下:
select dbms_random.value from dual;
0.438497011075884 /*获得到的随机数*/
限制⼩数的取值范围可以将dbms_random.value换为dbms_random.value(30,50) 其中的30和50就是它的取值范围
对于如此长的⼩数来说。有可能不是你想要的,下⾯就来约束下⼩数位数Sql如下:
select round(dbms_random.value,3) from dual;
0.819  /*保留⼩数位数为3位的随机数*/
如何获得随机整数呢?
select floor(dbms_random.value(30,50)) from dual;
这样就可以取得到30到50之间的随机整数啦。dbms_random.random这样也可以获得整数。不过值过⼤。
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1、从表中随机取记录
select * from (select * from staff order by dbms_random.random)
where rownum < 4
表⽰从STAFF表中随机取3条记录
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;
产⽣⼀个100~1000之间的随机数
SELECT dbms_random.value FROM dual;
产⽣⼀个0~1之间的随机数
SELECT dbms_random.value(10,20) FROM dual;
产⽣⼀个10~20之间的随机数
SELECT al FROM dual;
NORMAL函数返回服从正态分布的⼀组数。此正态分布标准偏差为1,期望值为0。这个函数返回的数值中有68%是介于-1与+1之间,95%介于-2与+2之间,99%介于-3与+3之间。
3、产⽣随机字符串
select dbms_random.string('P',20) from dual;
第⼀个参数 P 表⽰ printable,即字符串由任意可打印字符构成
第⼆个参数表⽰返回字符串长度
4、ceil( n )函数是返回⼤于或等于n的最⼩整数。
DBMS_RANDOM.VALUE()是随机产⽣( 0,1 )之间的数。
要产⽣两位的随机数,可以DBMS_RANDOM.VALUE()*100,这样产⽣( 0,100 )
的随机数,当产⽣( 0,10)之间的数时,只要加上10就可以保证产⽣的数都是两位了。
的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
sql中round函数怎么使用5、正态分布的随机数
select al 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
--⽣成带分隔符(-)的GUID的⾃定义函数
create or replace function my_guid
return varchar2
is
guid varchar(36);
temp varchar(32);
begin
temp:=sys_guid();
guid:= substr(temp,1,8) || '-'
||substr(temp,9,4) || '-'
||substr(temp,13,4)|| '-'
||substr(temp,17,4)|| '-'
||substr(temp,21,12);
return guid;
end;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。