orcale中的to_number方法使用_oracle

来源:脚本之家  责任编辑:小易  

TO_NUMBER函数()是Oracle中常用的类型转换函数之一,主要是将字符串转换为数值型的格式,与TO_CHAR()函数的作用正好相反。

To_number函数的格式如下:

To_number(varchar2 or char,'format model')

To_number函数中也有很多预定义的固定格式:

格式值 含义
9 代表一个数字
0 强迫0显示
$ 显示美元符号
L 强制显示一个当地的货币符号
. 显示一个小数点
, 显示一个千位分隔符号

TO_NUMBER用法 将一个字符串转成数值

格式:TO_NUMBER(string,format) 即 TO_NUMBER(字符串,格式)

在“转换函数:TO_CHAR()用法之一 将一个数值转化成字符串 ”一文中 TO_CHAR 函数所用格式,都适合本函数。

例:

TO_NUMBER('123.45')

结果

123.45

TO_NUMBER('$123,456.78','$999,999.99')

结果

123,456.78

Oracle中to_number()函数的学习

1、

Converts a string to the NUMBER data type(将字符串转换为数字数据类型)
TO_NUMBER(<value>[, <format>, <NLS parameter>]) RETURN NUMBER
select to_number('00001228') from dual;--to_number('00001228') 1228
select trunc(to_number('123.123'),2) from dual;

结果为:123.12

2、

Converts a HEX number to FLOAT(转换一个十六进制数的浮标)
TO_NUMBER(<value>, <format>);
SELECT TO_NUMBER('0A', 'XX')
FROM dual;

结果为:10

3、

Converts a HEX number to DECIMAL(一个十六进制数转换为十进制)
TO_NUMBER(<binary_float | binary_double | number>,
'<hex mask>') RETURN <binary_float | binary_double | number>;
SELECT TO_NUMBER(100000,'XXXXXXXX')
FROM dual;

结果为:1048576

4、

--to_number(expr)
--to_number(expr,format)
--to_number(expr,format,'nls-param')
 
select to_number('0123')number1,      --converts a string to number
    trunc(to_number('0123.123'),2) number2,
    to_number('120.11','999.99') number3,
     to_number('0a','xx') number4,    --converts a hex number to decimal
    to_number(100000,'xxxxxx') number5
from dual;

补充:oracle中to_number字符串转数字、max取最大值、dbms_random.value生成随机数及对小数做截取,四舍五入操作的函数

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,简单粗暴。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持真格学网。如有错误或未考虑完全的地方,望不吝赐教。

您可能感兴趣的文章:深入浅析Orcale的nvl函数和SQL Server的isnull函数Orcale 数据库客户端PL/SQL 中文乱码的问题解决方法Orcale权限、角色查看创建方法

  • 本文相关:
  • oracle 数据库闪回相关语句介绍
  • oracle数据库中外键的相关操作整理
  • 解决pl/sql developer中数据库插入数据乱码问题(ssm项目开发)
  • oracle中decode函数的使用方法示例
  • redhat 4中安装oracle 10g图文教程
  • 简单三步轻松实现oracle字段自增
  • delete archivelog all无法清除归档日志解决方法
  • 将oracle的create语句更改为alter语句使用
  • pl/sql中编写oracle数据库分页的存储过程
  • oracle删除表前判断表名是否存在若存在则删除
  • Oracle中如何用SQL把字符串转换成整型
  • oracl数据库 组函数 TO_NUMBER
  • ORACLE 数据库中的NUMBER类型的字段为NULL时怎么处...
  • oracle中如何把number型转化成varchar2呢?
  • orcale 数据转换,整数转换为小数类型。比如,1 转...
  • orcale的一个查询语句问题,高手进来
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全mssqlmysqlmariadboracledb2mssql2008mssql2005sqlitepostgresqlmongodbredisaccess数据库文摘数据库其它首页深入浅析orcale的nvl函数和sql server的isnull函数orcale 数据库客户端pl/sql 中文乱码的问题解决方法orcale权限、角色查看创建方法oracle 数据库闪回相关语句介绍oracle数据库中外键的相关操作整理解决pl/sql developer中数据库插入数据乱码问题(ssm项目开发)oracle中decode函数的使用方法示例redhat 4中安装oracle 10g图文教程简单三步轻松实现oracle字段自增delete archivelog all无法清除归档日志解决方法将oracle的create语句更改为alter语句使用pl/sql中编写oracle数据库分页的存储过程oracle删除表前判断表名是否存在若存在则删除oracle 查看表空间的大小及使用情linux系统(x64)安装oracle11g完oracle数据库下载及安装图文操作oracle存储过程基本语法介绍oracle 10g 安装教程[图文]oracle 如何查询被锁定表及如何解基于ora-12170 tns 连接超时解决oracle中to_date详细用法示例(ororacle数据库tns配置方法详解oracle 创建表空间详细介绍浅谈oracle数据库的建模与设计linux服务器开机启动oracle的设置方法oracle 日期的一些简单使用oracle相关组件版本信息的介绍oracle 8i字符集乱码问题析及其解决办法在linux系统上同时监控多个oracle数据库表oracle数据库及应用程序优化开发者网络ororacle关于重建索引争论的总结oracle 多个字符替换实现详解oracle 日期格式(总结)
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved