Oracle中计算除法——解决除数为零报错

Posted 牛奶咖啡13

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle中计算除法——解决除数为零报错相关的知识,希望对你有一定的参考价值。

一、问题描述

    在Oracle数据库中,需要使用到除法,但是除数有可能为零,如果直接使用sql中的除法运算符(/),则会报错。

二、问题分析

    通过分析发现,是除数为0时会出现问题,那么我们可以先排除除数为零时直接指定结果为0,然后在进行除法计算(另外由于除法会导致结果的小数位数会很长,需要配合Round函数截取对应保留的小数位数)。

三、解决办法

3.1、计算除法的语法和示例

--Oracle中计算除法语法
SELECT case WHEN(NVL(除数, 0))!=0 THEN round(被除数 / 除数,需要保留的小数位数) ELSE 0 END result FROM DUAL

 

 3.2、计算除法使用到的函数内容

Oracle中Case When的用法https://coffeemilk.blog.csdn.net/article/details/121215294

Oracle中实现过滤非空内容但保留空内容数据(或不等于条件包含空值)https://coffeemilk.blog.csdn.net/article/details/124834869

Oracle中保留两位小数https://blog.csdn.net/xiaochenXIHUA/article/details/120413218?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165612405016781483786107%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=165612405016781483786107&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-1-120413218-null-null.nonecase&utm_term=%E4%BF%9D%E7%95%99%E5%B0%8F%E6%95%B0&spm=1018.2226.3001.4450

Oracle中将小数转换成字符丢零.截取小数.除数为零解决法

如下所示,前面少个0

SQL>select money from users where username =‘LEI‘;

money

 

---------

.3256

解决方法:

SQL>select to_char(money ,‘fm9999999990.00‘) from users where username =‘LEI‘;

 

money

---------

0.3256

 

以上是关于Oracle中计算除法——解决除数为零报错的主要内容,如果未能解决你的问题,请参考以下文章

CWE-369:Divide By Zero除数有可能为零缺陷是如何产生的?

Oracle中将小数转换成字符丢零.截取小数.除数为零解决法

辗转相除法求最大公约数 php

oracle apex 奇怪的零除法问题

sql server中除数为零的处理技巧

ORACLE数据批量插入时,除数为0