SQL Developer:从 SQL 脚本输出中删除科学记数法?

Posted

技术标签:

【中文标题】SQL Developer:从 SQL 脚本输出中删除科学记数法?【英文标题】:SQL Developer: Remove scientific notation from SQL Script output? 【发布时间】:2016-01-15 14:40:36 【问题描述】:

所以我有大约 200 个 SQL 语句,它们将对各种表执行求和。我通过 SQL 开发人员将这些汇总作为脚本运行。我希望在不同的数据库中比较这些汇总的结果。

我遇到的问题是我的一些求和结果是科学记数法,因为结果太大了。这不适用于我的比较目的,因为精度很重要。

这是一个求和查询示例:

select  sum(COLUMN_A), count(*) from TABLE_A;

示例输出:

SUM(COLUMN_A)   COUNT(*)
---------------- ----------
  3.7E+12         68 

所以我的问题是我可以启用某种设置来显示整个数字而不是科学记数法吗?我知道我可以从 SQL 本身中格式化数字,但这会非常乏味。

如果这样做的唯一方法是手动转换每个总和,您能否提供一个适用于总和的查询。当我尝试

select  to_char(sum(columnA), '9990.9999999999999999999'), count(*) from columnA;

没用。

【问题讨论】:

见this answer。不是一个重复的问题?不过,您需要选择一种适用于任何查询中的任何值的数字格式。列标题是否都具有相似的模式?如果是这样,您可以改用column command。 Avoid inserting exponential value in DB Float column的可能重复 【参考方案1】:

尝试使用 Cast 将其更改为小数

Cast([ColumnName] as decimal(38,0))

【讨论】:

以上是关于SQL Developer:从 SQL 脚本输出中删除科学记数法?的主要内容,如果未能解决你的问题,请参考以下文章

SQL Developer 脚本输出到数据网格

SQL Developer 脚本输出截断 sys_refcursor 宽度

如何在 SQL Developer 中的 PLSQL 错误后抑制脚本显示(禁用命令/代码输出)

在 PL/SQL 中捕获 SQL/开发人员脚本输出

在 SQL Developer 中使用服务器输出或 DBMS_OUTPUT

如何从 case when 中删除 NULL 然后输出 Oracle SQL Developer