暂无图片
数据作除法运算,结果保留12位SQL如何实现
我来答
分享
zy
2022-12-10
数据作除法运算,结果保留12位SQL如何实现

如果计算结果小于12位,则全部输出;如果结算结果大于12位,则保留12位后输出,例如:结果中整数部分如有1位,则小数部分保留10位,小数点占1位;结果中整数部分如有3位,则小数部分保留8位,小数点占1位等等,SQL如何实现?

我来答
添加附件
收藏
分享
问题补充
4条回答
默认
最新
游湖


select trunc(222.123456789101112,11-length(trunc(222.123456789101112))) from dual;

把我语句中的数字换成你的计算结果,其他的你应该会改了吧。

暂无图片 评论
暂无图片 有用 4
暂无图片
手机用户5704
2022-12-10
这个厉害了
zwx
2022-12-10
游湖

要不要四舍五入

暂无图片 评论
暂无图片 有用 3
游湖

楼主给个采纳吧,写个半天

暂无图片 评论
暂无图片 有用 0
Thomas

首先,你这个需求有点怪,居然不考虑小数点的位置,一律输入12位?是否应该是这样:如果总位数(含小数点)大于12,则显示12位。如果总位数(含小数点)小于12,则显示当前的本色。

with t as (select 12.1357698231 as a from dual)
select to_char(round(a,11-length(round(a))),'fm999999999990.9999999999') AS result from t;

RESULT
------------------------------------------------------------------------
12.135769823

with t as (select 54312.1354 as a from dual)
select to_char(round(a,11-length(round(a))),'fm999999999990.9999999999') AS result from t;

RESULT
------------------------------------------------------------------------
54312.1354

with t as (select 0.13 as a from dual)
select to_char(round(a,11-length(round(a))),'fm999999999990.9999999999') AS result from t;

RESULT
------------------------------------------------------------------------
0.13

暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏