oracle中to_number字符串转数字、max取最大值、dbms_random.value生成随机数及对小数做截取,四舍五入操作的函数
2017-09-21 17:07
1701 查看
oracle中to_number、max、dbms_random.value、trunc、round函数的用法及生成随机整数的实现方式。
1、 to_number函数很简单,就是把字符类型转换成数字类型。
select to_number('123.8') from dual;
select to_number('123') from dual
2、max函数很简单,从结果集中取出最大值。下图为基础数据。在此基础上应用max函数。
3、dbms_random.value(a,b)函数可生成随机浮点数。
a指下限,b指上限,将会生成下限到上限之间的数字,但不包含上限,即生成的小数在[a,b)区间。
4、trunc(3.141592,4)保留小数到小数点后4位,不做四舍五入操作。
若第二个参数不传,默认保留整数。
5、round(3.141592,4)四舍五入到小数点后4位。
同样,若第二个参数不传,默认四舍五入到整数。
6、随机生成[1,7]之间的整数, dbms_random.value结合round或者trunc实现。
但是用select round(dbms_random.value(1,7)) from dual随机生成[1,7]之间的随机数是不科学的
以随机生成[1,4]之间的随机数为例,若是这么写select round(dbms_random.value(1,4)) from dual
当dbms_random.value(1,4)生成的随机数在1~1.5之间时round(dbms_random.value(1,4))值为1
当dbms_random.value(1,4)生成的随机数在1.5~2.5之间时round(dbms_random.value(1,4))值为2
当dbms_random.value(1,4)生成的随机数在2.5~3.5之间时round(dbms_random.value(1,4))值为3
当dbms_random.value(1,4)生成的随机数在3.5~4之间时round(dbms_random.value(1,4))值为4
可见生成1和4的概率为1/6,生成2和3的概率为2/6,所以也就谈不上随机生成了。
可改成select round(dbms_random.value(0.5,4.5)) from dual,这样生成每一个数的概率就相同了。
用round和trunc函数结合dbms_random.value生成随机数时一定注意这一点。
建议这种情况直接用trunc,简单粗暴。
1、 to_number函数很简单,就是把字符类型转换成数字类型。
select to_number('123.8') from dual;
select to_number('123') from dual
2、max函数很简单,从结果集中取出最大值。下图为基础数据。在此基础上应用max函数。
3、dbms_random.value(a,b)函数可生成随机浮点数。
a指下限,b指上限,将会生成下限到上限之间的数字,但不包含上限,即生成的小数在[a,b)区间。
4、trunc(3.141592,4)保留小数到小数点后4位,不做四舍五入操作。
若第二个参数不传,默认保留整数。
5、round(3.141592,4)四舍五入到小数点后4位。
同样,若第二个参数不传,默认四舍五入到整数。
6、随机生成[1,7]之间的整数, dbms_random.value结合round或者trunc实现。
但是用select round(dbms_random.value(1,7)) from dual随机生成[1,7]之间的随机数是不科学的
以随机生成[1,4]之间的随机数为例,若是这么写select round(dbms_random.value(1,4)) from dual
当dbms_random.value(1,4)生成的随机数在1~1.5之间时round(dbms_random.value(1,4))值为1
当dbms_random.value(1,4)生成的随机数在1.5~2.5之间时round(dbms_random.value(1,4))值为2
当dbms_random.value(1,4)生成的随机数在2.5~3.5之间时round(dbms_random.value(1,4))值为3
当dbms_random.value(1,4)生成的随机数在3.5~4之间时round(dbms_random.value(1,4))值为4
可见生成1和4的概率为1/6,生成2和3的概率为2/6,所以也就谈不上随机生成了。
可改成select round(dbms_random.value(0.5,4.5)) from dual,这样生成每一个数的概率就相同了。
用round和trunc函数结合dbms_random.value生成随机数时一定注意这一点。
建议这种情况直接用trunc,简单粗暴。
相关文章推荐
- Oracle字符串转换成数字函数to_number
- 类库------对一些字符串进行操作的类1.判断输入是否数字2.截取字符串函数3.过滤输入信息4.生成随机数5.生成验证码图片6.获取汉字第一个拼音7.半角转全角8.全角转半角
- oracle学习之to_number方法(字符串转数字)
- max字符串时,先进行to_number操作
- dbms_random.value生成随机数
- dbms_random.value生成随机数
- oracle中对字母加数字列的排序及截取字符串函数substr介绍
- 高精度运算专题-输出函数与字符串转数字函数(Output function and the string to number function)
- Oracle:DBMS_RANDOM.VALUE取随机数.
- 用oracle sql对数字进行操作: 取上取整、向下取整、保留N位小数、四舍五入、数字格式化
- dbms_random.value 随机数问题 & 用DBMS_RANDOM生成文本和日期值
- dbms_random.value 随机数问题 & 用DBMS_RANDOM生成文本和日期值
- Oracle dbms_random函数用法快速生成多条测试数据
- [转]Oracle dbms_random函数用法快速生成多条测试数据
- oracle随机数的用法:dbms_random.value()
- Oracle通过dbms_random.string生成随机字符串
- Oracle 远程访问配置 在 Windows Forms 和 WPF 应用中使用 FontAwesome 图标 C#反序列化XML异常:在 XML文档(0, 0)中有一个错误“缺少根元素” C#[Win32&WinCE&WM]应用程序只能运行一个实例:MutexHelper Decimal类型截取保留N位小数向上取, Decimal类型截取保留N位小数并且不进行四舍五入操作
- Oracle函数,按分隔符截取字符串
- Oracle中的函数 字符串、数字、日期
- Oracle中生成随机数的函数