我有一个包含几列的表,带有 DATA_TYPE FLOAT,NUMBER。有整数和带小数位的小数位。
例如 234 , 4 , 0 , 23.000000004 , 234,4444 , ...
任务:
我希望这些数字最多有2位小数。如果更多,则四舍五入。离开!
希望是通过sqldeveloper执行.sql脚本。欢迎使用更简单的方法!
简介:
- 如果超过 2 个小数位,则为 ROUND 数字
- 更新值
- 在几个选定的列上使用
- .sql 脚本
- sqldeveloper 优先
我有一个包含几列的表,带有 DATA_TYPE FLOAT,NUMBER。有整数和带小数位的小数位。
例如 234 , 4 , 0 , 23.000000004 , 234,4444 , ...
我希望这些数字最多有2位小数。如果更多,则四舍五入。离开!
希望是通过sqldeveloper执行.sql脚本。欢迎使用更简单的方法!
简介:
最简单的可能是这样的
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 特定精度,则应将这些列定义为数字而不是浮点数。