orcale中的to_number方法使用

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

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

(0)

相关推荐

  • Orcale 数据库客户端PL/SQL 中文乱码的问题解决方法

    配置一下环境变量即可: 1.我的电脑--> 属性---> 高级系统设置 --> 环境变量 2.配置环境变量 变量名:NLS_LANG 变量值:SIMPLIFIED CHINESE_CHINA.ZHS16GBK 这样在PL/SQL 中就没有乱码了,也支持中文的查询了.

  • Orcale权限、角色查看创建方法

    查看当前用户拥有的系统权限 复制代码 代码如下: select * from user_sys_privs; 系统权限 系统管理员授予-----sys用户 复制代码 代码如下: create user lisi identified by 123456 //创建用户 grant create session to lisi //授予拥有会话的权限 grant create table to lisi //授予创建表的权限 grant create unlimited tablespace to

  • 深入浅析Orcale的nvl函数和SQL Server的isnull函数

    Orcal 的 nvl函数 NVL(Expr1,Expr2)如果Expr1为NULL,返回Expr2的值,否则返回Expr1的值,Expr1,Expr2都为NULL则返回NULL NVL2(Expr1,Expr2,Expr3)如果Expr1为NULL,返回Expr2的值,否则返回Expr3的值 NULLIF(Expr1,Expr2)如果Expr1和Expr2的值相等,返回NULL,否则返回Expr1的值 Coalesce(expr1, expr2, expr3-.. exprn) 表示可以指定多

  • orcale中的to_number方法使用

    TO_NUMBER函数()是Oracle中常用的类型转换函数之一,主要是将字符串转换为数值型的格式,与TO_CHAR()函数的作用正好相反. To_number函数的格式如下: To_number(varchar2 or char,'format model') To_number函数中也有很多预定义的固定格式: 格式值 含义 9 代表一个数字 0 强迫0显示 $ 显示美元符号 L 强制显示一个当地的货币符号 . 显示一个小数点 , 显示一个千位分隔符号 TO_NUMBER用法 将一个字符串转成

  • Prototype中dom对象方法汇总

    以下部分一个一个的详细介绍: $(element):getElementById的封装,element可以是一个元素的id或元素本身,也可以是一个数组,这时返回一个数组,使用$方法,会自动调用Element.extend(element)方法,这样的话使元素可以直接调用Element中的方法, 例如Element.hide(element)可以写成这样$(element).hide() document.getElementsByClassName(className, parentElemen

  • Hadoop MultipleOutputs输出到多个文件中的实现方法

    Hadoop MultipleOutputs输出到多个文件中的实现方法 1.输出到多个文件或多个文件夹: 驱动中不需要额外改变,只需要在MapClass或Reduce类中加入如下代码 private MultipleOutputs<Text,IntWritable> mos; public void setup(Context context) throws IOException,InterruptedException { mos = new MultipleOutputs(context

  • 使用JS中的exec()方法构造正则表达式验证

    正则表达式,又称正规表示法.常规表示法.(英语:Regular Expression,在代码中常简写为regex.regexp或RE),计算机科学的一个概念.正则表达式使用单个字符串来描述.匹配一系列符合某个句法规则.在很多文本编辑器里,正则表达式通常被用来检索.替换那些符合某个模式的文本. 一.Javascript中的正则表达式 在Javascript中,可以使用RegExp对象构造正则表达.我们需要新建一个实例化的RegExp()对象,可以传入两个参数:第一个参数是匹配的模式,第二个参数是一

  • Python中pygame安装方法图文详解

    本文实例讲述了Python中pygame安装方法.分享给大家供大家参考,具体如下: 这里主要描述一下我们怎样来安装pygame 可能很多人像我一样,发现了pygame是个好东东,但是就是不知道怎样使用,或者怎样安装,在百度/google上面搜索了一番后,发现没有一篇 详细描述pygame的安装过程的文章.如果你是其中的一员,那么这篇教程可能会帮助到你. 当然,在学习pygame的时候,需要你要有一定的python基础知识的.如果你已经具备了一定的python基础,那么接下来的内容可能对你来说就很

  • JavaScript获得页面base标签中url的方法

    本文实例讲述了JavaScript获得页面base标签中url的方法.分享给大家供大家参考.具体如下: 如果网页中定义了base标签,我们可以通过js代码获得base的url地址 <!DOCTYPE html> <html> <head> <base id="htmldom" href="http://www.jb51.net/"> </head> <body> <p>Base UR

  • 使用flex中的httpservice方法与java进行交互

    地球已经调至震动状态使用flex中的httpservice方法与java进行交互: 一.写服务器: 1.在myeclipse中建立web项目 2.写一个用来打印xml的servlet 3.当使用httpservice与java进行交互的时候不用改写remoting-config.xml文件 4.web.xml文件中配置servlet的访问地址(一般不用配置,当一个servlet建好之后myeclipse就会自动配置好web.xml文 件,不用去改动,但是需要注意的是,当你在导入blazeds开发

  • 详解Ruby中的单件方法和单件类

    单件方法 Ruby允许给单个对象增加方法,这种只针对单个对象生效的方法,称为单件方法 示例代码 str = "just a regular string" def str.title? self.upcase == self end str.title? # => false str.methods.grep(/title?/) # => [:title?] str.singleton_methods #=> [:title?] str.class # => S

  • Ruby中的钩子方法详解

    Ruby的哲学理念是基于一个基本的要素,那就是让程序员快乐.Ruby非常注重程序员的快乐,并且也提供了许多不同的方法来实现它. 它的元编程能力能够让程序员编写在运行时动态生成的代码.它的线程功能使得程序员有一种优雅的的方式编写多线程代码. 它的钩子方法能让程序员在程序运行时扩展它的行为. 上述的这些特性,以及一些其他很酷的语言方面,使得Ruby成为编写代码的优先选择之一. 本文将探讨Ruby中的一些重要的钩子方法.我们将从不同方面讨论钩子方法,如它们是什么,它们用于什么,以及我们如何使用它们来解

  • Javscript调用iframe框架页面中函数的方法

    本文实例讲述了在Javscript调用iframe框架页面中函数的方法,这个调用方法其实非常的简单,有了这个方法我们就可以实现iframe之间传值或修改值了,操作起来都非常的简单.分享给大家供大家参考.具体实现方法如下: 访问iframe里面的函数: 复制代码 代码如下: document.getElementById('commentIframe').contentWindow.hasLogined(); commentIframe为iframe的id. 要在 window.onload里面执

随机推荐