首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在PostgreSQL中截断小数点前的值

在PostgreSQL中截断小数点前的值
EN

Stack Overflow用户
提问于 2019-07-08 14:50:39
回答 1查看 436关注 0票数 0

我正在使用dblink将数据从Oracle表移动到Postgres,在Postgres的新表结构中,我为oracle中没有精度的数值列添加了精度,现在在移动数据时,我能够截断小数值以匹配小数位数,但是,如果小数点之前的值与精度不匹配,我正在努力寻找一种方法来截断该值。

要调整比例,我使用以下命令:

代码语言:javascript
运行
复制
insert into Postgres.test 
select id, width::numeric(7,3) 
from oracle.test;

所以,在这种情况下,如果小数点后的值大于3位,它会将其截断到3位,但是,如果精度(小数点前)大于4,也应该被截断到4位,我不介意这样做会改变几行的值。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-08 15:04:56

你可以用“左截断”小数点前的数字

代码语言:javascript
运行
复制
insert into Postgres.test 
select id, (width % 10000)::numeric(7,3) 
from oracle.test;

但我看不出这么做有多大意义。使用空值可能比使用坏值更好:

代码语言:javascript
运行
复制
insert into Postgres.test 
select id, CASE WHEN width >= 10000 THEN NULL ELSE width::numeric(7,3) END
from oracle.test;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56929672

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档