Oracle:如何舍入和更新表格中的所有数字? [关闭]
Posted
技术标签:
【中文标题】Oracle:如何舍入和更新表格中的所有数字? [关闭]【英文标题】:Oracle: How to round and update all numbers in a table? [closed] 【发布时间】:2013-10-08 23:52:35 【问题描述】:我有一个包含几列的表,DATA_TYPE FLOAT, NUMBER。有整数和带小数位的小数位。例如 234、4、0、23.000000004, 234,4444, ...
作业:
我希望这些数字在最大有2位小数。如果更多,则四舍五入。关闭! 希望是通过sqldeveloper 执行.sql 脚本。欢迎使用更简单的方法!
概要:
如果超过 2 位小数,则为整数 更新值 在几个选定的列上使用 .sql 脚本 sqldeveloper 首选【问题讨论】:
【参考方案1】:最简单的可能是
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 IMMEDIATE
或 DBMS_SQL
执行动态生成的SQL 语句。这在编写、调试和维护方面要付出更多的努力,但如果您希望它在将来向表中添加新列时自动工作,这可能才值得。
如果您有 FLOAT
列,请注意浮点数本质上是不精确的。即使您四舍五入到 2 位小数,也不能保证存储的值将始终为 2 位小数。您可能会发现比您预期的要大或小得多的值。如果您真的想确保所有数字都具有 2 特定精度,则应将这些列定义为数字而不是浮点数。
【讨论】:
以上是关于Oracle:如何舍入和更新表格中的所有数字? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
如何在 R 中舍入包含一些字符变量的 data.frame?