怎么用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语句修改数值为保留两位小数?的主要内容,如果未能解决你的问题,请参考以下文章