我有一个有几列的表,数据类型是float,number。有整数和小数位。
例如234,4,0,23.000000004,2344444,…
任务:
我希望数字最多有2个小数点。如果更多的话,那就汇总一下。滚开!
希望通过sqldeveloper执行.sql脚本。欢迎使用更简单的方法!
简介:
如果超过小数点后两位,则为整数
更新值
几种精选柱的利用
.sql脚本
首选SqlDeveloper

最佳答案

最简单的可能是

UPDATE table_name
   SET column1_name = round(column1_name, 2 ),
       column2_name = round(column2_name, 2 ),
       ...
       columnN_name = round(columnN_name, 2 )

在此处输入要修改的任意多列。如果要动态生成脚本,可以编写一个匿名pl/sql块,该块使用dba|all|user_tab_columns数据字典视图为每个表生成适当的sql语句,并使用EXECUTE IMMEDIATEDBMS_SQL执行动态生成的sql语句。这在编写、调试和维护方面要付出更大的努力,不过,如果希望在将来向表中添加新列时自动工作,那么这可能是值得的。
如果有FLOAT列,请注意浮动本身是不精确的。即使四舍五入到两位小数,也不能保证存储的值始终是两位小数。您可能会发现值是无限大或小于您预期的值。如果您真的想确保所有数字都有2个特定的精度,那么这些列应该定义为数字而不是浮点数。

关于sql - Oracle:如何舍入和更新表中的所有数字? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19260595/

10-09 08:25
查看更多