oracle to_number整数显示小数点
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle to_number整数显示小数点相关的知识,希望对你有一定的参考价值。
在oracle中在我去整数值后怎样保留小数点
比如 125
在整数是为125.00 不能用to_char 因为我取值出来需要参与运算的! 急!!!!
1、选中第一行数据,如C1。
2、点击上方任务栏中的“开始”。
3、数字已经由“回0.74”自动变成了“1”。
4、往下拉,其它数字也会自动变为整数。完成。
注意事项:
从参与复制的节点间的关系分类
主从复制
复制中只允许从源数据库(即主数据库)向其他数据库(从数据库)复制对象,复制对象存放在从数据库站点中。主从复制是最基本的一种结构。
在这种结构中,定义一个主节点,其源数据称为主节点数据(或主拷贝) ;定义1到n个复制节点,其从主节点复制过来的数据称为复制点数据(或副拷贝) 。数据更新操作只能在主拷贝上进行,然后复制给其它副拷贝。
参考技术A可以先进行计算,在最后的结果上to_char() 格式化。
或者使用CAST()select cast('125' as number(8,2)) nu from dual。
其中char是待转换的字符串,fmt指定待转换字符串的匹配规则,nlsparam参数用于指定所用语言种类等。char的形式可为任何支持格式的字符串,如money型的字符串:$120,111.0023,23,000,000等。
扩展资料:
奇偶数:
整数中,能够被2整除的数,叫做偶数。不能被2整除的数则叫做奇数。即当n是整数时,偶数可表示为2n(n 为整数);奇数则可表示为2n+1(或2n-1)。
偶数包括正偶数(亦称双数)、负偶数和0。所有整数不是奇数,就是偶数。
在十进制里,我们可用看个位数的方式判断该数是奇数还是偶数:个位为1,3,5,7,9的数为奇数;个位为0,2,4,6,8的数为偶数。
参考资料来源:百度百科-to_number()函数
或者 使用CAST()
select cast('125' as number(8,2)) nu from dual;本回答被提问者采纳
不能求和(TO_NUMBER(varchar2 字段)):ORA 01722 [ORACLE]
【中文标题】不能求和(TO_NUMBER(varchar2 字段)):ORA 01722 [ORACLE]【英文标题】:Cannot SUM(TO_NUMBER(varchar2 field)) :ORA 01722 [ORACLE] 【发布时间】:2016-05-27 08:42:33 【问题描述】:我有 myfield 作为 varchar2 类型,我尝试使用 sum(to_number(myfield)) 对这个字段求和,但结果是 ORA-01722 无效数字。
在发生此错误之前,我使用了 SUM(TO_NUMBER(REGEXP_REPLACE(BIKOU,'[[:alpha:]]', '')))
,它可以工作,但上周我在 myfield 中输入了一些十进制值,因此此代码不再工作。
这是我在 myfield 中的数据示例 10,12,13.5,NULL
【问题讨论】:
为什么需要那个 regexp_replace?这意味着“X1X2X3X4XX”将是 1234,你真的想要这个吗? 你nls_numeric_characters
设置为什么?
从不在varchar
列中存储数字。改为修复您的表格设计。
我只想将存储为 varchar2 的数值相加
关键是,如果您为您的列使用了正确的数据类型,您一开始就不需要使用这样的技巧。不过,您需要清楚数值的含义;正如 Aleksej 所说,您的代码会将混合字符串中的任何数字视为数字,这可能不是您想要的; '13.5' 对你来说算数吗?那么“13,5”或“1,000.5”或“1.000,5”呢?
【参考方案1】:
如果您从 13.5
之类的字符串中收到该错误,那么您会话的 NLS_NUMERIC_CHARACTERS 似乎设置为使用逗号作为小数分隔符:
alter session set nls_numeric_characters=',.';
with your_table (bikou) as (
select '10' from dual
union all select '12' from dual
union all select '13.5' from dual
union all select null from dual
)
select SUM(TO_NUMBER(REGEXP_REPLACE(BIKOU,'[[:alpha:]]', '')))
from your_table;
SQL Error: ORA-01722: invalid number
您可以将会话显式设置为使用句点作为小数分隔符,或者提供使用句点的格式掩码:
select SUM(TO_NUMBER(REGEXP_REPLACE(BIKOU,'[[:alpha:]]', ''), '99999999.99999'))
from your_table;
SUM(TO_NUMBER(REGEXP_REPLACE(BIKOU,'[[:
---------------------------------------
35,5
或者在模型中使用小数点分隔符并覆盖会话的 NLS 设置:
select SUM(TO_NUMBER(REGEXP_REPLACE(BIKOU,'[[:alpha:]]', ''),
'99999999D99999', 'nls_numeric_characters=''.,'''))
from your_table;
SUM(TO_NUMBER(REGEXP_REPLACE(BIKOU,'[[:
---------------------------------------
35,5
掩码显然必须适合您期望从正则表达式返回的所有值;我使用的可能不太适合您的数据。
这种问题就是为什么您不应该将数字或日期存储为字符串。为您的列使用正确的数据类型。
【讨论】:
以上是关于oracle to_number整数显示小数点的主要内容,如果未能解决你的问题,请参考以下文章
不能求和(TO_NUMBER(varchar2 字段)):ORA 01722 [ORACLE]