暂无图片
数据作除法运算,结果保留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
打赏 0
暂无图片
手机用户5704
2022-12-10
这个厉害了
zwx
2022-12-10
游湖

要不要四舍五入

暂无图片 评论
暂无图片 有用 3
打赏 0
游湖

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

暂无图片 评论
暂无图片 有用 0
打赏 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
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
oracle可以通过dblink连mysql数据库吗?
回答 1
DetailedOverviewofConnectingOracletoMySQLUsingDG4ODBCDatabaseLink(DocID1320645.1)
Streams AQ: enqueue blocked on low memory优化
回答 1
您好!这个问题你解了么,目前也遇到这个问题,在考虑能不能执行这个alter语句
DBMS_LOCK_ALLOCATED 这个是什么导致的锁?
回答 2
感谢。不过我还是不明白,什么场景会产生这个?如何解决?多谢
如何处理 Oracle SQL 中的单引号?
回答 4
insertintot(name)values(q’[tom’clack]’);
AWR分析报告问题求助:存储服务器都正常。只有这台服务器掉包,负载1.x 2.x 1.x.是否是Oracle侧又问题
回答 1
掉包可能与网络配置、网络设备故障、网络拥塞等网络相关因素有关。而负载情况为1.x、2.x、1.x,虽然相对不算高,但也不能完全排除Oracle方面的潜在问题。要确定是否是Oracle侧的问题,还需要进
有oracle的sql优化方向的视频么?
回答 1
已采纳
有,可以看看鹅学习上的黄远邦出的视频
ORACLE子表链接主表,主表的数据只显示在第一行怎么做到
回答 1
一般来说,主表和子表关联,主表的数据会显示和子表一样的行数,而且会重复,我猜你的意思是,对于主表中的每一行记录,在结果中都只保留一条。先说问题,从你这个格式中来看,如果有人对这个数据进行了排序,那么你
Oracle中读不会阻塞写(因为有版本快照),写会阻塞读吗?
回答 1
写不阻塞读,同样因为有一致性读。
Oracle数据库执行计划中有笛卡尔连接应该怎么优化?
回答 1
已采纳
首先应该检查表是否有关联条件,如果表没有关联条件,那么应该询问开发与业务人员为何表没有关联条件,是否为满足业务需求而故意不写关联条件。其次应该检查离笛卡尔连接最近的表是否真的返回1行数据,如果返回行数
oracle ADG 搭建过程中可以限流吗?
回答 2
已采纳
如果是通过duplicate,可以通过限制rman通道数限制速度。如果是rman备份到本地,再拷贝过去的方法,可以在allocatechannel、configurechannel命令中指定参数rat