alter table 表 alter column 字段 numeric(精度,2)
只用update是不行的。
其实为了数据的准确,你完全没有必要修改,有两个办法:
2.做一个视图,用round函数取两位小数。
1、创建测试表,
create table test_num(id number, value number)
2、插入测试数据
insert into test_num values(1,15)
insert into test_num values(2,13)
insert into test_num values(3,13.2325)
insert into test_num values(4,15.7681)
commit
3、查询表中数据,select t.*,rowid from test_num t
4、编写sql,保留2位小数,如果整数 后面补0;
select t.*,
case
when not regexp_like(round(value, 2), '\D') then
round(value, 2) || '.00'
else
to_char(round(value, 2))
end as value2
from test_num t
1、创建测试表,
create table test_replace_num(id number, value number)
2、插入测试数据;
insert into test_replace_num values(1,4.9528)
insert into test_replace_num values(2,3.8821)
insert into test_replace_num values(3,41.2287)
insert into test_replace_num values(4,18.1675)
commit
3、查询表中全量数据;select t.*, rowid from test_replace_num t
4、编写语句,将value字段更新为只保留两位小数;
update test_replace_num set value = round(value,2)
commit
5、再次查询表中全量数据,发现vlaue只保留两位小数;
select t.*, rowid from test_replace_num t
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)