怎么用SQL语句修改数值为保留两位小数?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么用SQL语句修改数值为保留两位小数?相关的知识,希望对你有一定的参考价值。

我的SQL数据库里有个字段里很多数值为4位小数,比如4.9876,我想把它改为4.99,数据库字段只留两位小数,用SQL语句怎么写,是用update语句写吗,怎么修改啊,谢谢了

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;

参考技术A 4位就4位吧,除非你改数据类型:
alter table 表 alter column 字段 numeric(精度,2)
只用update是不行的,得到的结果不是4.99,而是4.9900。

其实为了数据的准确,你完全没有必要修改,有两个办法:
1.每次检索数据时用round函数取两位小数;
2.做一个视图,用round函数取两位小数。本回答被提问者采纳
参考技术B update 表 set 字段= round(字段,2)

sql查询用到两个字段相除,如何让他保留小数两位

如果希望只保留2位小数,可以使用decimal数据类型。例如: decimal(15,2)
当然,也可以在select时将money类型转换成decimal,使其只显示两位小数。假设你的字段名叫做工资,数据类型是money, 可以用cast语句将其转换成两位小数的decimal,
cast(工资, decimal(12,2))
参考技术A 下面的语句即可:
select
*
from
<你没说表名哦>
where
c<>round(c)
原理就是判断这个字段是否和四舍五入以后的结果相同,不同就有小数。你的数据库系统如果说round为未知函数,那你可以查一下相应的手册,看看是不是int等。
参考技术B select convert(decimal(10,2),column1/column2) from table_1 参考技术C select cast((28/1.17) as decimal(18,2)) as aaa from table1 参考技术D 是什么数据库啊?
sql server可以直接用select convert(decimal(10,2),字段1/字段2) from table,
如果是oracle的话就更好了,select round(字段1/字段2, 2) from table.

以上是关于怎么用SQL语句修改数值为保留两位小数?的主要内容,如果未能解决你的问题,请参考以下文章

sql查询结果保留两位小数,如何做?

如何用sql语句将计算结果保留两位小数

DB2中如果转换数值显示为两位小数,并显示千分位逗号要怎么写SQL?

sql 中要求现实数据保留两位小数 搜索语句

sql语句 怎么去掉小数点后多余的 0

sql查询用到两个字段相除,如何让他保留小数两位