• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    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,简单粗暴。

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

    您可能感兴趣的文章:
    • 深入浅析Orcale的nvl函数和SQL Server的isnull函数
    • Orcale 数据库客户端PL/SQL 中文乱码的问题解决方法
    • Orcale权限、角色查看创建方法
    上一篇:云服务器centos8安装oracle19c的详细教程
    下一篇:解决Oracle安装遇到Enterprise Manager配置失败问题
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    orcale中的to_number方法使用 orcale,中的,number,方法,使用,