2016-06-29 35 views
0

十进制我知道我需要返回Oracle中列的总和我使用的查询是以下的Oracle SQL:返回和查询结果精确

select sum(scores) from table_x; 

我想要回总是导致这样

如果结果是一个整数,表示1000中,输出应为1000.00(默认2精度位数的小数部分)

如果结果是具有n位精度的小数,在结果将被返回,例如,如果sum = 1000.555666,那么我想要的结果是1000.555666。

问题是,当我修改使用铸像

select cast(sum(scores) as binary_double) from table_x 

当总和是1000,我得到的结果为1000.0查询,但我想,因为在小数部分(1000.00)多了一个零我做结果的字符串比较。尝试了许多解决方案,如投射到不同的数据类型,但无法以我想要的形式获得整数结果。

+0

返回值可以是VARCHAR2? – Grayson

+0

无所谓,我有一个包装脚本,可以将所有返回的字符串转换成任何返回值,所以只要有小数点后两位都是零,那就行了。 – sysuser

回答

1

尝试:

select to_char(sum(scores), 'FM9999999999D009999') 
from table_x; 

请参考to_char功能的文档细节==>click

+0

工作正常,我会查看文档以了解更多信息。 – sysuser