正在紧急对应一个bug现象: 统计数据库中的某一列的和,假设这一列为 column1
select sum(column1) from table where ...
问题:当累计的和超过15位时,sum出来的值不准确。比如说实际应该是9999999999999999
sum出来的结果是 1.0e17,也就是说多增加了1.
急求在sql中的解决方案。
谢谢。
select sum(column1) from table where ...
问题:当累计的和超过15位时,sum出来的值不准确。比如说实际应该是9999999999999999
sum出来的结果是 1.0e17,也就是说多增加了1.
急求在sql中的解决方案。
谢谢。
解决方案 »
- 在RHEL5.3上安装Oracle10g的10201版本,需要哪些程序包
- 未找到提供程序? 是什么错误啊
- 如何把在用PLSQL 实现下面的功能阿?
- 如何写一个带有复合类型的存储过程??
- Oracle Application Framework中,做下拉框的LIST时,写的SQL绑到LIST上和真实查询的结果不一样
- oracle删除问题!
- oracle实例经常自动关闭---请高手指点!!
- 向oracle中插入数据时,要先判断是否有,有则更新,没有插入,可不可以直接插入?
- oracle procedure 和 function 里能不用 drop table 和 create table
- rr地问:关于pl/sql
- oracle数据库安全性问题
- oracle怎么查最近的n条记录?
scott@ORCL10G> column sum_sal for 999999999999999
scott@ORCL10G> select sum(sal)+99999999999999 as sum_sal from emp; SUM_SAL
----------------
100000000028674已选择 1 行。scott@ORCL10G>
scott@ORCL10G> select sum(sal)+99999999999999 as sum_sal from emp; SUM_SAL
--------------------
100000000028674.000已选择 1 行。scott@ORCL10G>
精度问题,自动进位
select cast(sum(column1) as number(16)) from table where
这个怎么样你定义的长度才16位,包含几位小数?
cast效率比to_number好
我试下 cast(sum(column1) as number(20,2)) 这个。
to_char(sum(column1),99999999999999999.99)
自己修正小数点前后的'9'的位数
不过 to_char(sum(column1),99999999999999999.99) 个好像好使,就不知道会有没有什么特殊情况。
输出的是字符型数据
可能会包含空格,不要空格的话
to_char外加个trim函数过滤掉
to_char(sum(column1),'9999999999999999') .
还有一个问题就是 sum计算出来的值其实是对的,只不过是 它进行了隐式转换,可以这样认为吗,谢谢大家,一会马上结贴。