将整数转换为浮点数/小数

时间:2018-11-26 18:41:13

标签: sql oracle

输出应为

totalsales

250.0000

代码:

select cast(max (totalsales) as float())
from (select SalesPerson, avg(TotalSale) AS totalsales
from Sales 
group by SalesPerson);

当前输出为250.0需要250.0000

TotalSale数据类型为整数

表销售额:

InvoiceNo   SalesPerson TotalSale

1           Acheson      50    
2           Bryant       25    
3           Bennett     250    
4           Acheson      50    
5           Bryant      100    
6           Bennett     250

4 个答案:

答案 0 :(得分:3)

我认为您可能会在查询工具中看到的内容与查询的数字数据类型结果之间感到困惑。如果希望输出具有特定外观,请对其进行格式化:

SELECT TO_CHAR(250, 'fm9D0000')

如果您想要一个特定的数据类型,则将其强制转换(您似乎知道如何做到),但不要以为它看起来特别特别

如果您使用前端编程语言处理数据,请不要使用数据库对其进行格式化;从oracle以数字方式提取它,并在前端对其进行格式化

答案 1 :(得分:1)

您正在使用哪个客户端程序?

如果SQL*Plus,请尝试:

set numformat 999.9999

,然后重新运行您的SQL语句。

如果还有其他问题,您将必须弄清楚如何在该客户端中格式化输出,并以所需的格式打印答案。

希望有帮助。

答案 2 :(得分:0)

要获得正确的平均值,我认为您应该转换列值

SELECT TO_CHAR(MAX(totalsales), ‘0D0000’)
FROM (SELECT SalesPerson, AVG(CAST(TotalSale AS FLOAT)) AS totalsales
      FROM Sales 
      GROUP BY SalesPerson);

答案 3 :(得分:0)

select to_char(value, '999.9999') from totalsales

为我工作。